Add @dsgt Slack bot for Data Science @ Georgia Tech - #350
Conversation
Introduce apps/dsgt-slack as a custom @dsgt bot (mentions, DMs, /dsgt) with a Slack app manifest, Socket Mode plus HTTP receiver, and install docs. Co-authored-by: Aamogh <aamoghS@users.noreply.github.com>
Dependency ReviewThe following issues were found:
|
|
Visit the preview URL for this PR (updated for commit 11ddf4b): https://hacklytics2027--pr-350-op0w7gw7.web.app (expires Fri, 21 Aug 2026 21:12:18 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: c48ba34db61581e25fe2978355160b5eefe0e83f |
|
| Filename | Overview |
|---|---|
| apps/dsgt-slack/src/app.ts | Registers mention, direct-message, and slash-command listeners and configures valid Socket Mode and HTTP Bolt receivers. |
| apps/dsgt-slack/src/env.ts | Validates required Slack credentials, conditionally requires the Socket Mode token, and parses the HTTP port. |
| apps/dsgt-slack/src/replies.ts | Implements deterministic intent detection and fixed responses without exposing an external execution or interpolation sink. |
| apps/dsgt-slack/manifest.yaml | Declares the bot identity, slash command, required scopes, subscribed events, and Socket Mode configuration. |
| apps/dsgt-slack/package.json | Defines the new workspace package and its build, lint, typecheck, test, development, and runtime dependencies. |
| package.json | Extends the repository test command to include the Slack application tests. |
Sequence Diagram
sequenceDiagram
participant U as Slack user
participant S as Slack
participant B as @dsgt Bolt app
participant R as Reply router
U->>S: Mention, DM, or /dsgt command
S->>B: Signed event or Socket Mode payload
alt Slash command
B-->>S: Acknowledge command
end
B->>R: Route message text
R-->>B: Fixed help, ping, join, or default reply
B-->>S: Send response
S-->>U: Display bot reply
Reviews (1): Last reviewed commit: "Add dsgt Slack Bolt bot for Data Science..." | Re-trigger Greptile
Adds a custom Slack Bolt app for DS@GT. In Slack it appears as @dsgt (app name and bot user display name). This is a club-owned Slack app, not the Cursor Slack integration.
What the bot does
@dsgtmentions (app_mention)/dsgtwithhelp,ping, andjoinpinghealth check so we can confirm the process is alive after installNo LLM backend. Intent routing is a small local helper in
apps/dsgt-slack/src/replies.ts.Packaging for Aamogh
Follow
apps/dsgt-slack/README.md:apps/dsgt-slack/manifest.yamlat api.slack.com/apps (From an app manifest)SLACK_BOT_TOKEN,SLACK_SIGNING_SECRET, andSLACK_APP_TOKENintoapps/dsgt-slack/.env(see.env.example)pnpm --filter @query/dsgt-slack dev/invite @dsgt, then try@dsgt pingor/dsgt helpSocket Mode is on in the manifest for local/dev. The same process can listen on HTTP later (
SLACK_SOCKET_MODE=false; Slack Request URL path is/slack/events).Monorepo
apps/dsgt-slack(@query/dsgt-slack)dev/build/lint/typecheckpnpm testnow includes this package