Complete deployment of unified Light Trinity system: 🔴 RedLight: Template & brand system (18 HTML templates) 💚 GreenLight: Project & collaboration (14 layers, 103 templates) 💛 YellowLight: Infrastructure & deployment 🌈 Trinity: Unified compliance & testing Includes: - 12 documentation files - 8 shell scripts - 18 HTML brand templates - Trinity compliance workflow Built by: Cece + Alexa Date: December 23, 2025 Source: blackroad-os/blackroad-os-infra 🌸✨
14 KiB
14 KiB
💬 GreenLight Slack Integration
Extension to GreenLight for Slack Team Communication
💬 Slack Events as GreenLight Steps
Map Slack events directly to GreenLight workflow:
| Slack Event | GreenLight Step | Step # | Emoji | State Transition | Channel |
|---|---|---|---|---|---|
| Message received | ⚡ Impulse | 1 | ⚡📥 | void → inbox | any |
| /issue created | 📥 Capture | 3 | 📥📋 | → inbox | #linear-updates |
| Reaction ✅ | ✅ Approve | 7 | ✅👍 | → queued | any |
| /deploy started | 🎬 Mobilize | 10 | 🎬🚀 | queued → wip | #ops-deployments |
| Deploy running | ⚙️ Execute | 13 | ⚙️⚡ | → wip | #ops-deployments |
| Deploy success | 🎉 Complete | 19 | 🎉✅ | wip → done | #ops-deployments |
| Alert: error | 🚨 Detect | 16 | 🚨⚠️ | → blocked | #ops-alerts |
🏷️ Slack Channel Categories
Recommended channel structure with GreenLight mappings:
| Emoji | Channel | Purpose | GreenLight Domain | Notification Type |
|---|---|---|---|---|
| 📢 | #general | Company announcements | Platform (🛣️) | General |
| ⚙️ | #engineering | Engineering discussions | Infrastructure (🔧) | Technical |
| 🚨 | #ops-alerts | System alerts & monitoring | Infrastructure (🔧) | Critical |
| 🚀 | #ops-deployments | Deployment notifications | Infrastructure (🔧) | Deploy |
| 🚦 | #ops-greenlight | GreenLight state changes | Platform (🛣️) | State |
| 📋 | #linear-updates | Linear issue notifications | Platform (🛣️) | Issues |
| 🐙 | #github-activity | GitHub PRs, commits | Infrastructure (🔧) | Code |
| 💳 | #stripe-billing | Payment & subscriptions | Platform (🛣️) | Billing |
| 🤖 | #ai-logs | AI agent activity logs | AI (🌀) | AI |
| 🧠 | #lucidia | Lucidia system updates | AI (🌀) | Lucidia |
| ☀️ | #standup | Daily standups | Platform (🛣️) | Team |
| 🎲 | #random | Non-work banter | Platform (🛣️) | Social |
⚡ Slash Commands
| Command | GreenLight Action | Description | Priority |
|---|---|---|---|
| /issue | Create Issue | Create Linear issue | 📌 |
| /deploy | Deploy Service | Trigger deployment | 🔥 |
| /status | Check Status | Check system status | 📌 |
| /greenlight | Query State | Query GreenLight state | ⭐ |
| /agent | Query AI | Query AI agent | ⭐ |
| /oncall | Show Schedule | Show on-call schedule | 📌 |
| /remind | Set Reminder | Set reminder | 💤 |
| /standup | Post Standup | Post standup update | 📌 |
🎨 Composite Patterns for Slack
Message Events
⚡📥💬👉 = Message received, micro scale
💬✅👉📌 = Message acknowledged
🔔💬🎢⭐ = Mention notification, macro, high priority
Command Events
📋💬👉📌 = Issue command, micro
🚀💬🎢🔥 = Deploy command, macro, urgent
🚦💬👉⭐ = GreenLight query, high priority
Notification Events
🚨⚠️💬🔥 = Critical alert in Slack
🎉✅💬🎢 = Deployment success notification
💰✅💬📌 = Payment success notification
🐙📥💬👉 = GitHub activity notification
Reaction Events
✅💬👉📌 = Approval reaction
❌💬👉📌 = Rejection reaction
🚀💬👉⭐ = Deploy ready reaction
Full Slack Flow
[⚡📥] [💬📋] [✅👍] [🚀🎬] [⚙️⚡] [🎉✅] = Message → Issue → Approve → Deploy → Execute → Complete
[🚨⚠️] [💬🔔] [👤📌] = Alert → Notify → Assigned
📝 NATS Subject Patterns (Slack)
Message Events
greenlight.slack.message.received.micro.comms.{channel}
greenlight.slack.message.sent.micro.comms.{channel}
greenlight.slack.mention.received.micro.comms.{user}
Command Events
greenlight.slack.command.issue.micro.comms.{user}
greenlight.slack.command.deploy.macro.comms.{service}
greenlight.slack.command.status.micro.comms.{service}
greenlight.slack.command.greenlight.micro.comms.{id}
Webhook Events
greenlight.slack.webhook.alert.critical.comms
greenlight.slack.webhook.deployment.macro.comms.{service}
greenlight.slack.webhook.github.micro.comms.{repo}
greenlight.slack.webhook.stripe.macro.comms.{event}
Reaction Events
greenlight.slack.reaction.added.micro.comms.{emoji}
greenlight.slack.reaction.approve.micro.comms.{message}
greenlight.slack.reaction.reject.micro.comms.{message}
🔨 Slack Memory Templates
Message Operations
# Slash command executed
gl_slack_command() {
local command="$1"
local user="$2"
local args="${3:-}"
gl_log "💬⚡👉📌" \
"slack_command" \
"$command" \
"Executed by: $user, args: $args"
}
# Message sent to channel
gl_slack_message_sent() {
local channel="$1"
local message_type="${2:-notification}"
gl_log "💬📤👉📌" \
"message_sent" \
"$channel" \
"Type: $message_type"
}
# Mention received
gl_slack_mention() {
local user="$1"
local channel="$2"
gl_log "🔔💬👉⭐" \
"mention_received" \
"$user" \
"In channel: $channel"
}
Webhook Notifications
# Alert sent to Slack
gl_slack_alert() {
local severity="$1" # critical, warning, info
local title="$2"
local channel="${3:-ops-alerts}"
local severity_emoji=""
case "$severity" in
critical) severity_emoji="🚨" ;;
warning) severity_emoji="⚠️" ;;
info) severity_emoji="ℹ️" ;;
*) severity_emoji="📢" ;;
esac
gl_log "${severity_emoji}💬🎢🔥" \
"slack_alert" \
"$title" \
"Severity: $severity, Channel: #$channel"
}
# Deployment notification sent
gl_slack_deployment_notification() {
local status="$1" # started, success, failed
local service="$2"
local environment="$3"
local status_emoji=""
case "$status" in
started) status_emoji="🚀" ;;
success) status_emoji="✅" ;;
failed) status_emoji="❌" ;;
*) status_emoji="⚙️" ;;
esac
gl_log "${status_emoji}💬🎢📌" \
"slack_deployment" \
"$service" \
"Status: $status, Env: $environment"
}
# GreenLight update posted
gl_slack_greenlight_update() {
local item_id="$1"
local from_state="$2"
local to_state="$3"
gl_log "🚦💬👉📌" \
"slack_greenlight" \
"$item_id" \
"$from_state → $to_state"
}
# Linear notification sent
gl_slack_linear_notification() {
local action="$1" # created, updated, completed
local identifier="$2"
local action_emoji=""
case "$action" in
created) action_emoji="🆕" ;;
updated) action_emoji="📝" ;;
completed) action_emoji="✅" ;;
*) action_emoji="📋" ;;
esac
gl_log "${action_emoji}💬👉📌" \
"slack_linear" \
"$identifier" \
"Action: $action"
}
# GitHub notification sent
gl_slack_github_notification() {
local type="$1" # pr_opened, pr_merged, push, issue
local repo="$2"
local title="${3:-}"
local type_emoji=""
case "$type" in
pr_opened) type_emoji="🔀" ;;
pr_merged) type_emoji="🎉" ;;
push) type_emoji="📤" ;;
issue) type_emoji="🐛" ;;
*) type_emoji="🐙" ;;
esac
gl_log "${type_emoji}💬👉📌" \
"slack_github" \
"$repo" \
"Type: $type, $title"
}
# Stripe notification sent
gl_slack_stripe_notification() {
local event="$1" # payment_success, payment_failed, subscription_created, etc.
local customer="$2"
local amount="${3:-}"
local event_emoji=""
case "$event" in
payment_success) event_emoji="💰" ;;
payment_failed) event_emoji="❌" ;;
subscription_created) event_emoji="🎉" ;;
subscription_canceled) event_emoji="👋" ;;
*) event_emoji="💳" ;;
esac
gl_log "${event_emoji}💬👉📌" \
"slack_stripe" \
"$customer" \
"Event: $event, Amount: $amount"
}
Approval & Interaction
# Approval request sent
gl_slack_approval_request() {
local type="$1" # deployment, access, expense, other
local requester="$2"
local title="${3:-}"
gl_log "🔔💬👉⭐" \
"approval_request" \
"$requester" \
"Type: $type, $title"
}
# Approval decision
gl_slack_approval_decision() {
local decision="$1" # approved, rejected
local approver="$2"
local request_id="$3"
local decision_emoji=""
case "$decision" in
approved) decision_emoji="✅" ;;
rejected) decision_emoji="❌" ;;
*) decision_emoji="💬" ;;
esac
gl_log "${decision_emoji}💬👉📌" \
"approval_decision" \
"$request_id" \
"Decision: $decision by $approver"
}
# Reaction added
gl_slack_reaction() {
local emoji="$1"
local message_id="$2"
local user="$3"
gl_log "👍💬👉📌" \
"reaction_added" \
"$message_id" \
"Emoji: $emoji by $user"
}
Standup & Team
# Standup posted
gl_slack_standup() {
local user="$1"
local date="$2"
gl_log "☀️💬👉📌" \
"standup_posted" \
"$user" \
"Date: $date"
}
# Modal opened
gl_slack_modal_opened() {
local modal_type="$1"
local user="$2"
gl_log "📋💬👉📌" \
"modal_opened" \
"$modal_type" \
"User: $user"
}
🎯 Example Integration: Complete Slack Flow
Scenario: Deploy command to completion
# 1. User runs /deploy command
gl_slack_command "/deploy" "alexa" "production blackroad-api"
# [💬⚡👉📌] slack_command: /deploy — Executed by: alexa, args: production blackroad-api
# 2. Deployment started notification
gl_slack_deployment_notification "started" "blackroad-api" "production"
# [🚀💬🎢📌] slack_deployment: blackroad-api — Status: started, Env: production
# 3. Deployment running (from workflow)
gl_workflow_step "blackroad-api" "deploy" "passed"
# [🚀✅👉🔧] deploy: blackroad-api — Step deploy passed
# 4. Deployment success notification
gl_slack_deployment_notification "success" "blackroad-api" "production"
# [✅💬🎢📌] slack_deployment: blackroad-api — Status: success, Env: production
# 5. GreenLight update notification
gl_slack_greenlight_update "blackroad-api-deploy-123" "wip" "done"
# [🚦💬👉📌] slack_greenlight: blackroad-api-deploy-123 — wip → done
Scenario: Critical alert flow
# 1. Critical error detected
gl_log "🚨⚠️🔧🔥" "error_detected" "database" "Connection pool exhausted"
# 2. Alert sent to Slack
gl_slack_alert "critical" "Database Connection Pool Exhausted" "ops-alerts"
# [🚨💬🎢🔥] slack_alert: Database Connection Pool Exhausted — Severity: critical, Channel: #ops-alerts
# 3. User mentions on-call engineer
gl_slack_mention "oncall-engineer" "ops-alerts"
# [🔔💬👉⭐] mention_received: oncall-engineer — In channel: ops-alerts
# 4. Issue created from Slack
gl_slack_command "/issue" "oncall-engineer" "Database connection pool exhausted"
# [💬⚡👉📌] slack_command: /issue — Executed by: oncall-engineer
# 5. Linear issue created
gl_issue_created "BLA-150" "Database connection pool exhausted" "bug"
# [⚡🐛👉📌] issue_created: BLA-150 — Database connection pool exhausted
# 6. Notification to Linear channel
gl_slack_linear_notification "created" "BLA-150"
# [🆕💬👉📌] slack_linear: BLA-150 — Action: created
Scenario: Payment received notification
# 1. Stripe webhook received
gl_webhook_received "invoice.paid" "evt_abc123"
# [⚡📥💳👉] webhook_received: invoice.paid — Stripe webhook: evt_abc123
# 2. Payment processed
gl_invoice_paid "customer@example.com" "58" "usd"
# [💰✅🎢🌍] invoice_paid: customer@example.com — Payment successful: $58 usd
# 3. Notification to Slack
gl_slack_stripe_notification "payment_success" "customer@example.com" "$58"
# [💰💬👉📌] slack_stripe: customer@example.com — Event: payment_success, Amount: $58
Scenario: Approval request
# 1. Approval request created
gl_slack_approval_request "deployment" "developer" "Production deploy of v2.0.0"
# [🔔💬👉⭐] approval_request: developer — Type: deployment, Production deploy of v2.0.0
# 2. Approver reacts
gl_slack_reaction "white_check_mark" "msg_123" "tech-lead"
# [👍💬👉📌] reaction_added: msg_123 — Emoji: white_check_mark by tech-lead
# 3. Approval decision recorded
gl_slack_approval_decision "approved" "tech-lead" "approve_req_123"
# [✅💬👉📌] approval_decision: approve_req_123 — Decision: approved by tech-lead
# 4. Deploy triggered
gl_slack_command "/deploy" "tech-lead" "production app-v2"
# [💬⚡👉📌] slack_command: /deploy — Executed by: tech-lead, args: production app-v2
📊 Slack App Configuration
App Name: BlackRoad OS Workspace: Your Slack workspace Request URLs:
- Events: https://slack.blackroad.io/slack/events
- Commands: https://slack.blackroad.io/slack/commands
- Interactive: https://slack.blackroad.io/slack/interactive
Bot Scopes (16):
- chat:write (send messages)
- chat:write.public (send to public channels)
- commands (slash commands)
- channels:read & channels:history
- users:read & users:read.email
- reactions:write & reactions:read
- files:write & files:read
- im:write & im:read
- app_mentions:read
Slash Commands (8):
- /issue - Create Linear issue
- /deploy - Trigger deployment
- /status - Check system status
- /greenlight - Query GreenLight state
- /agent - Query AI agent
- /oncall - Show on-call schedule
- /remind - Set reminder
- /standup - Post standup update
📚 Integration Checklist
- Mapped Slack events to GreenLight 27-step workflow
- Created channel-to-domain mappings
- Defined slash commands
- Extended NATS subjects for Slack events
- Built 15+ Slack-specific templates
- Webhook notification functions (6 channels)
- Block Kit UI templates (5 types)
- D1 schema for Slack sync
- Event handler with signature verification
Created: December 23, 2025 For: Slack Team Communication Integration Version: 2.0.0-slack Status: 🔨 IMPLEMENTATION