Agent skill

slack-manifest

Guide for modifying the Slack app manifest — adding/removing bot scopes, event subscriptions, slash commands, shortcuts, or OAuth config. Ensures single-source-of-truth via slack-app-manifest.json. Triggers on: slack scope, bot scope, slack manifest, slack permission, add slack scope, remove slack scope, slack event subscription, slash command, slack OAuth, slack-app-manifest.

Stars 1,070
Forks 123

Install this agent skill to your Project

npx add-skill https://github.com/inkeep/agents/tree/main/.agents/skills/slack-manifest

SKILL.md

Slack App Manifest — Single Source of Truth

All Slack app configuration lives in one file. Every other file derives from it automatically. Never hardcode scopes, events, or commands elsewhere.


Source of Truth

packages/agents-work-apps/src/slack/slack-app-manifest.json   ← EDIT HERE
  │
  ├── slack-scopes.ts       ← exports BOT_SCOPES / BOT_SCOPES_CSV (imported by oauth.ts)
  └── setup-slack-dev.ts    ← reads manifest at runtime (local dev app setup)

Adding or Removing Bot Scopes

Steps

  1. Edit the manifest — add/remove the scope in oauth_config.scopes.bot:

    packages/agents-work-apps/src/slack/slack-app-manifest.json
    
  2. No other code changes neededslack-scopes.ts re-exports at import time; setup-slack-dev.ts reads the manifest at runtime. oauth.ts imports BOT_SCOPES_CSV from slack-scopes.ts.

  3. Production Slack app — must be updated manually at https://api.slack.com/apps → OAuth & Permissions. The manifest is a template (contains <YOUR_API_DOMAIN> placeholders) and is not auto-synced to production.

  4. Local dev apps — re-run pnpm setup-slack-dev. The script detects scope drift automatically and triggers OAuth re-install if scopes changed.

  5. Changeset — create one for agents-work-apps:

    bash
    pnpm bump patch --pkg agents-work-apps "Add <scope-name> bot scope for <feature>"
    

Do NOT

  • Hardcode scopes in oauth.ts, setup-slack-dev.ts, or anywhere else
  • Add scopes only to the manifest without updating the production Slack app
  • Remove scopes used by active features without checking event handlers and API calls

Modifying Event Subscriptions

Edit settings.event_subscriptions.bot_events in the manifest:

json
"event_subscriptions": {
  "request_url": "https://<YOUR_API_DOMAIN>/work-apps/slack/events",
  "bot_events": ["app_mention", "message.channels", "message.groups", "message.im"]
}

After adding an event type, ensure the event dispatcher (dispatcher.ts) handles it.


Modifying Slash Commands

Edit features.slash_commands in the manifest. The dev setup script auto-renames the command to /inkeep-<devId> for local dev apps.


Modifying Shortcuts

Edit features.shortcuts in the manifest.


Key Files

File Role
slack-app-manifest.json Single source of truth for all Slack app config
slack-scopes.ts Exports BOT_SCOPES and BOT_SCOPES_CSV from the manifest
routes/oauth.ts Uses BOT_SCOPES_CSV for OAuth install flow
scripts/setup-slack-dev.ts Reads manifest directly; detects drift on re-run
dispatcher.ts Routes incoming Slack events to handlers

Inspecting Current Scopes

bash
node -e "console.log(require('./packages/agents-work-apps/src/slack/slack-app-manifest.json').oauth_config.scopes.bot.join('\n'))"

Template Placeholders

The manifest uses <YOUR_API_DOMAIN> as a placeholder in URLs. This is intentional — it keeps the manifest portable across environments:

  • Production: Replace with your deployed API domain
  • Local dev: setup-slack-dev.ts handles this automatically (uses Socket Mode, removes URL fields)

Expand your agent's capabilities with these related and highly-rated skills.

inkeep/agents

structured-itinerary-responses

Present time-aware itineraries with clear actions and citations

1,070 123
Explore
inkeep/agents

weather-safety-guardrails

Keep activity suggestions safe and respect local conditions

1,070 123
Explore
inkeep/agents

api-logging-guidelines

Best practices and guidelines for using logger in API routes. Defines appropriate logging levels, what to log, and when to avoid logging. Use when implementing or reviewing API route logging, debugging strategies, or optimizing log output.

1,070 123
Explore
inkeep/agents

vercel-composition-patterns

React composition patterns that scale. Use when refactoring components with boolean prop proliferation, building flexible component libraries, or designing reusable APIs. Triggers on tasks involving compound components, render props, context providers, or component architecture. Includes React 19 API changes.

1,070 123
Explore
inkeep/agents

write-docs

Write or update documentation for the Inkeep docs site (agents-docs package). Use when: creating new docs, modifying existing docs, introducing features that need documentation, touching MDX files in agents-docs/content/. Triggers on: docs, documentation, MDX, agents-docs, write docs, update docs, add page, new tutorial, API reference, integration guide.

1,070 123
Explore
inkeep/agents

product-surface-areas

Consolidated dependency graph of Inkeep customer-facing surface areas (UIs, CLIs, SDKs, APIs, protocols, config formats). Example use: as a prd-time (planning/brainstorming phase) or post-change checklist to understand the full scope of side-effects or what making one change to the product means for the rest. Use whenever you need to understand the "ripple" out effects of any change.

1,070 123
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results