GoSignal is an organization-ready Slack launch readiness agent. It turns a messy launch thread plus live workspace evidence into a durable go/no-go brief: blockers, missing sign-offs, rollback risk, dependencies, evidence-backed reasoning, and one accountable next action.
Built for Slack Agent Builder Challenge Track 3: Organizations.
- Install GoSignal in a workspace and invite it to a public demo channel.
- Open a seeded launch thread in that channel.
- Use the
Analyze launch readinessmessage shortcut or mention@GoSignalin the thread. - Review the readiness board and open the launch brief canvas.
- Add the missing sign-off and click
Re-run readiness. - Open App Home to confirm the launch history, workspace settings, and audit history are scoped to the current workspace.
- Public repo:
BitTriad/GoSignal - Slack App ID:
A0BH56L2ETS- This is the current Slack CLI-bound development app from
.slack/apps.dev.json. - If the final submission uses a different production app, replace this value everywhere in the proof pack.
- This is the current Slack CLI-bound development app from
- Current install model: manifest import or Slack CLI-managed development app
- Current runtime: Bolt JS with Slack app capabilities, canvases, App Home, message shortcut, agent view, and optional Cerebras summarization
- Current storage: in-memory by default, Postgres adapter available
- Current deploy target name:
gosignalon Render - Hosted public URL: pending live verification
- Marketplace submission proof: pending manual capture
- Five active workspace proof: pending manual capture
- It solves an organization workflow that already lives in Slack: release and launch go/no-go decisions.
- It creates a durable artifact, not just a chat answer: a markdown launch brief canvas backed by evidence.
- It stays explainable: deterministic readiness logic decides blockers, approvals, ambiguity, and overall state.
- It is designed for workspace-safe installation: launch data is keyed by
workspace_idand thread identity in both memory and Postgres storage paths. - It has a real operator surface: thread actions, App Home, rerun flow, and sign-off request flow.
- It now supports configurable launch profiles, owner assignment/reminders, launch history, and export-ready briefs inside Slack.
- Marketplace readiness
- Proof capture
- Render setup
- Architecture
- Security
- Privacy
- Data retention
- Demo runbook
- Submission checklist
- Contributing
- License
- Verified in repo:
- App manifest includes agent view, App Home, message shortcut, canvases, and
org_deploy_enabled: true. - The app serves
GET /andGET /healthzfrom the production artifact. npm run verifypasses.npm run smokepasses.- Workspace-scoped persistence exists for both in-memory and Postgres storage.
- App Home publishes recent launches, workspace settings, and audit events for the current workspace.
- Optional Cerebras summarization is integrated with deterministic fallback.
- App manifest includes agent view, App Home, message shortcut, canvases, and
- Still requires external submission evidence:
- Marketplace submission timestamp or screenshot
- Final hosted URL and healthy
/healthzresponse from the deployed app - Final install URL or OAuth path
- Proof of installation in five active workspaces
- Final demo video under three minutes
- A user triggers GoSignal from a launch thread using the message shortcut or an app mention.
- GoSignal reads the current thread and, when Slack provides an action token, queries public workspace context through Slack search. If live search is not available, the thread reply and launch brief show that diagnostic explicitly.
- The deterministic readiness engine classifies approvals, blockers, ambiguity, rollback status, dependencies, profile-specific evidence, and next action.
- GoSignal posts a readiness board back into the thread, including evidence counts, live search diagnostics, and cross-channel evidence receipts.
- GoSignal creates or updates a markdown launch brief canvas.
- App Home shows recent launches, at-risk launches, missing sign-offs, workspace settings, and operator audit events for the current workspace.
- A user can rerun readiness, request the missing sign-off, assign an owner, remind that owner, open launch history, or export the brief from Slack.
manifest.json: Slack app manifest tuned for the agent messaging experiencesrc/app.ts: Bolt app bootstrap, routes, and dependency wiringsrc/handlers/: Slack event, shortcut, and action handlerssrc/domain/: launch models and deterministic readiness rulessrc/services/: launch orchestration, workspace admin controls, retrieval, canvas, and home renderingsrc/repositories/: in-memory and Postgres persistence for launches, workspace settings, and audit eventssrc/http/customRoutes.ts: production health endpointssrc/scripts/: LLM and production smoke verification utilitiestest/: unit and integration-style tests for the MVP flow
- Copy
.env.exampleto.envand fill in Slack credentials. - Install dependencies with
npm install. - Run
npm run devfor a one-shot local process, ornpm run dev:watchwhile iterating on TypeScript files. - Use
slack runif you want Slack CLI-managed local development. This repository includes the.slack/project files and a CLI hook that starts GoSignal throughnpm run dev:watch. - Import
manifest.jsoninto Slack or use Slack CLI to bind the app to your workspace. - Create an app-level token and keep Socket Mode enabled for the easiest local setup.
- Run
npm run verifybefore pushing changes. - Run
npm run smokeafternpm run buildto verify the production artifact servesGET /andGET /healthz.
- Keep
ENABLE_LLM_SUMMARIES=falseto use the deterministic provider only. - To enable more natural summaries and DM answers, set:
ENABLE_LLM_SUMMARIES=trueLLM_PROVIDER=cerebrasCEREBRAS_API_KEY- Optional
CEREBRAS_MODEL,CEREBRAS_BASE_URL, andCEREBRAS_REASONING_EFFORT
- Recommended for GoSignal:
CEREBRAS_REASONING_EFFORT=none. - Run
npm run check:llmto verify the exact Cerebras path GoSignal uses in production. - The deterministic readiness engine remains the source of truth. The LLM only rewrites grounded results into more natural language and answers follow-up questions from the stored launch record.
GoSignal is set up to deploy to Render with GitHub Actions handling CI and the Render deploy hook handling production deployment.
Use Render Postgres or another managed PostgreSQL provider for GoSignal.
- GoSignal persists launches through
pginsrc/repositories/postgresLaunchRepository.ts. - The current schema uses PostgreSQL tables, a unique index, and
JSONBpayload storage insrc/repositories/schema.sql. - Do not use a MongoDB-only datastore for this codebase unless you plan to rewrite the persistence layer.
render.yamldescribes the Render-friendly service setup that belongs with this repository..node-versionpins the major Node runtime for Render.npm run buildcompiles the production app intodist/usingtsconfig.build.json.npm startruns the production build through the rootserver.jsentrypoint.GET /andGET /healthzare available for smoke tests and Render health checks.npm run verifychecks types, runs tests, builds the production bundle, and validatesserver.js.npm run smokestarts the built app with safe local test settings and verifies both production health routes.- The GitHub Actions workflow runs verification and smoke tests before
triggering Render on pushes to
main.
- Create a Render web service from this repository.
- Create a PostgreSQL database and set
DATABASE_URLon the web service. - In the Render service, add:
SLACK_SIGNING_SECRETSLACK_BOT_TOKENSLACK_APP_TOKENDATABASE_URLUSE_SOCKET_MODE=trueSLACK_TOKEN_VERIFICATION_ENABLED=trueENABLE_LLM_SUMMARIES=falseunless you enable the optional LLM layer
- Create a Render deploy hook for the web service.
- In GitHub, add the repository secret
RENDER_DEPLOY_HOOK_URL. - Push to
main. GitHub Actions will verify the repo and then trigger Render. - Follow RENDER_SETUP.md for the exact walkthrough.
- The current default install flow is Socket Mode for development. Final Marketplace-style distribution should switch to HTTP request URLs.
- Search usage is public-first and currently strongest when invoked by a user action that provides an action token.
- The repo does not yet include final Marketplace submission proof, five active workspace proof, or a verified hosted health URL.
- Required-role overrides, channel allowlists, and self-service deletion are still not implemented.
- There is still no self-service deletion UI or automated purge flow. The current deletion path is documented separately.
- The current proof pack is honest by design: anything still pending manual capture is marked as pending instead of being presented as complete.