Skip to content

Slack

Purpose

Primary async team communication channel. Daily check-in destination for all executives per CLAUDE.md Section 3. Enforcement DM target for chief.staff when compliance sweeps find missed check-ins. CEO Daily Summary delivery channel.

How we use it

Daily cadence (weekday, per v1.2.11 — times are ceilings, not targets): - Morning Check-Ins by 9:00 AM PST posted by each executive to #exec-checkins and their per-exec channel - EOD Check-Outs by 9:00 PM PST - Chief of Staff enforcement sweeps at 9:30 AM (morning) and 9:00 PM (EOD) - CEO Daily Summary delivered via Slack DM to Rick by 9:30 PM PST (content cutoff hard at that time per standing rule)

Weekend cadence: - Morning by 12:00 PM PST, EOD by 4:00 PM PST — compressed window per CLAUDE.md Section 3.4 - CEO Daily Summary delivered at 5:00 PM PST

Channel map (canonical): see Slack Channel Map v1.0 — full governance reference covering the 6 per-exec interrupt channels, 15 per-dept-agent interrupt channels, and shared fleet channels (#exec-checkins, #agent-checkins, #agent-updates, #agent-handoffs, #exec-team, #business-info). Governance rules for "who posts where" live in that doc. Visual snapshot: /Claude/knowledge/assets/slack-channels-for-agents-2026-04-22.png.

Setup & credentials

OAuth via Claude Code MCP (mcp__claude_ai_Slack__*). Supports read channel/thread, search channels/public/users, send messages, schedule messages, create canvases.

Owner

chief.staff — daily cadence enforcement + CEO Daily Summary delivery is the primary use case. All executives also use Slack for their own check-ins.

  • [[CLAUDE]] Section 3 (Daily Operating Cadence), Section 13 (CEO Daily Summary)
  • [[chief.staff]] — primary owner, enforcement
  • [[project.manager]] — Weekly Kickoff posting Monday 9:00 AM PST
  • [[monday-com]] — handoffs from Slack async comms often convert to Monday.com tasks

Creating a Slack App + Incoming Webhook

Use this when a service needs to post alerts to a Slack channel (e.g. schema drift monitor, email automation).

Step 1 — Create the app

  1. Go to https://api.slack.com/appsCreate New AppFrom scratch
  2. Give it a name and select the eco|monetize workspace → Create App
  3. Store the Client ID, Client Secret, Signing Secret, and Verification Token in 1Password (item type: API Credential)

Step 2 — Add a bot user (required before webhook install)

Slack requires a bot user before it will allow workspace installation, even for webhook-only apps.

  1. Left sidebar → App Home
  2. Under "Your App's Presence in Slack" → Edit → set a Display Name and Username (e.g. eco-alerts / eco-alerts) → Add

Skip this step and you'll hit: "This app is requesting permission to install a bot but it's not currently configured with a bot."

Step 3 — Activate Incoming Webhooks

  1. Left sidebar → Incoming Webhooks → toggle ON
  2. Click Add New Webhook to Workspace
  3. Pick the target channel (use #admin-alerts for infrastructure/monitoring alerts)
  4. Click Allow
  5. Copy the URL — it looks like https://hooks.slack.com/services/T.../B.../...

Step 4 — Store and wire the webhook URL

The webhook URL is not the same as the app credentials (Client ID / Secret). It's a separate one-time URL generated per channel.

  • Add it to the 1Password item as a separate field (e.g. webhook_url)
  • Write it to the consuming service's expected path, e.g.:
    echo "https://hooks.slack.com/services/..." > ~/.ecomonetize/scripts/email-automation/.slack_webhook_url
    

Testing a webhook

curl -X POST -H 'Content-type: application/json' \
  --data '{"text":"Test alert from eco|monetize™ Alerts"}' \
  "$(cat ~/.ecomonetize/scripts/email-automation/.slack_webhook_url)"

Expected response: ok

eco|monetize Alerts — current wiring (as of 2026-04-23)

Component Value
Slack app eco|monetize Alerts
Channel #ops-alerts (public, eco|monetize™ workspace)
Webhook file ~/.ecomonetize/scripts/email-automation/.slack_webhook_url
1Password item Slack-Alert-Credentials → field webhook_url
launchd job com.ecomonetize.alerts (5-min interval)
Script /Claude/scripts/operations/ecomonetize-alerts/ecomonetize-alerts.sh
Owner qa.dataquality

Gotchas

  • Two different credential types: app credentials (OAuth) ≠ webhook URL. 1Password items often only have the OAuth side. The webhook URL must be generated separately via the Incoming Webhooks UI and stored explicitly.
  • Bot user is required even if your app never actually uses a bot — it's a Slack prerequisite for workspace installation.
  • The webhook URL is per-channel. If you need alerts in a second channel, add another webhook via the same Incoming Webhooks screen.

Notes

  • Weekday Morning Check-In deadline is 9:00 AM PST (Mon-Fri, v1.2.11 — ceiling, not target); enforcement sweep is 9:30 AM
  • Weekday EOD Check-Out deadline is 9:00 PM PST (v1.2.11); enforcement sweep is 9:00 PM
  • CEO Daily Summary weekday cutoff is 9:30 PM PST (v1.2.11); weekend cutoff is 5:00 PM PST
  • Weekly Kickoff is Monday 9:00 AM PST per v1.2.1
  • Quiet weekend check-ins are valid per Section 3.4 — standing-by messages count for compliance
  • Auto-launch (v1.2.11 Section 3.5): 6 Layer 1 execs auto-spawn at 8:00 AM PST every day; cron-to-local handoff protocol (v1.2.13 Section 3.5) governs self-correction when cron content drifts