Skip to content

Migrate to Million Slack bot (Pookie)#1

Open
rayhanadev wants to merge 2 commits into
mainfrom
pookie-slack-migration
Open

Migrate to Million Slack bot (Pookie)#1
rayhanadev wants to merge 2 commits into
mainfrom
pookie-slack-migration

Conversation

@rayhanadev

Copy link
Copy Markdown
Member

Summary

Reworks Wack Hacker (Purdue Hackers' Discord bot) into Pookie, Million's Slack-native bot, while keeping the orchestrator + skill-gated delegate subagent architecture. Three big strokes:

  • Slack platform — Chat SDK transport (chat + @chat-adapter/slack + Redis state): webhook/OAuth routes, app manifest generator, event handlers (mentions, DMs, subscribed threads, assistant threads), native streaming, per-thread history, and Block Kit tool approvals. Ports Pookie's personality + pet-mode into the Slack system prompt.
  • Discord removed entirely — deletes the gateway/interactions/packet protocol, Discord tools, the non-Slack bot tree, and Discord-coupled tasks/approvals/streaming. Scheduled-task delivery + dedup now run Slack-only over Redis.
  • Vendored Million integrations (no MCP) — Stripe, PostHog, Mercury, Axiom, Cloudflare, PlanetScale, and Exa delegate domains plus flat Repogrep tools, each skill-gated. Per-domain env is optional; a domain's subagent fails fast before launching when its required env vars are missing.

Also removes the Purdue-specific surface: the organizer roster (resolve_organizer), the documentation knowledge-base tool, unwired web_search, and sales/CRM + Resend webhook. The Vercel team now comes from env (VERCEL_TEAM_ID/VERCEL_TEAM_SLUG) and code search from GITHUB_ORG instead of hardcoded purduehackers. The Organizer access tier is renamed to Member, package/README/env + all skill/tool copy are rebranded to Million, and the stale docs/ tree is deleted.

Net: 529 files changed (+4.7k / −26.6k).

Reviewer notes

  • Set these env vars before deploy: GITHUB_ORG (Million's org slug), VERCEL_TEAM_ID, VERCEL_TEAM_SLUG. Slack transport: SLACK_*, REDIS_URL, BASE_URL. See .env.example.
  • Removed deps: @discordjs/*, discord.js, discord-api-types, discord-interactions, @purduehackers/discord-markdown-utils, @figma/rest-api-spec, @payloadcms/sdk, resend, svix, @vercel/edge-config.

Test plan

  • bun run typecheck — clean
  • bun run lint — 0 errors (3 pre-existing warnings)
  • bun run test — 469 passing
  • bun scripts/compile-skills.ts — 14 domains + 91 sub-skills
  • Provision the Slack app from the generated manifest and smoke-test a mention / DM / approval in a real workspace
  • Verify a vendored domain (e.g. Stripe) fails fast with a clear message when its env var is unset

Made with Cursor

…ookie)

Reworks Wack Hacker (Purdue Hackers' Discord bot) into Pookie, Million's
Slack-native bot, keeping the orchestrator + skill-gated delegate subagent
architecture.

Slack platform
- Add Chat SDK transport (`chat` + `@chat-adapter/slack` + Redis state):
  webhook/OAuth routes, app manifest generator, event handlers (mentions,
  DMs, subscribed threads, assistant threads), and Block Kit tool approvals.
- Stream turns natively to Slack and persist per-thread history.
- Port Pookie's personality + pet-mode into the Slack system prompt.

Remove Discord entirely
- Delete the gateway/interactions/packet protocol, Discord tools, the
  non-Slack bot tree, and Discord-coupled tasks/approvals/streaming.
- Slack-only scheduled-task delivery and dedup via Redis (no ConversationStore).

Vendored Million integrations (native tools, no MCP)
- Add Stripe, PostHog, Mercury, Axiom, Cloudflare, PlanetScale, and Exa
  delegate domains plus flat Repogrep tools, each with skill-gated tools.
- Per-domain env is optional; a domain's subagent fails fast before launching
  when its required env vars are missing.

Remove Purdue-specific surface
- Drop the organizer roster (`resolve_organizer`), knowledge-base
  `documentation` tool, unwired `web_search`, and sales/CRM + Resend webhook.
- Source the Vercel team from env (`VERCEL_TEAM_ID`/`VERCEL_TEAM_SLUG`) and
  the code-search org from `GITHUB_ORG` instead of hardcoded `purduehackers`.
- Rename the `Organizer` access tier to `Member`; rebrand package/README/env
  and all skill/tool copy to Million; delete the stale `docs/` tree.

Co-authored-by: Cursor <cursoragent@cursor.com>
Copilot AI review requested due to automatic review settings June 1, 2026 00:44

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@rayhanadev

Copy link
Copy Markdown
Member Author

bugbot run

@cursor

cursor Bot commented Jun 1, 2026

Copy link
Copy Markdown

Skipping Bugbot: Bugbot is disabled for this repository. Visit the Bugbot dashboard to update your settings.

@rayhanadev

Copy link
Copy Markdown
Member Author

bruh

- Commit to single-workspace bot-token mode: remove the half-built
  multi-workspace OAuth route + state and SLACK_CLIENT_ID/SECRET.
- Clear knip: drop unused deps, the orphaned audio + workflow-types
  islands, and dead exports/types; fix the stale knip entry.
- Rename leftover wack-hacker identifiers (tracer, evlog service,
  sandbox branch prefix) to pookie.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants