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.
Best use case
slack-manifest is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
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.
Teams using slack-manifest should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/slack-manifest/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How slack-manifest Compares
| Feature / Agent | slack-manifest | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
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.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 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 needed** — `slack-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)Related Skills
weather-safety-guardrails
Keep activity suggestions safe and respect local conditions
structured-itinerary-responses
Present time-aware itineraries with clear actions and citations
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.
web-design-guidelines
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
vercel-react-best-practices
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
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.
shadcn
Manages shadcn components and projects — adding, searching, fixing, debugging, styling, and composing UI. Provides project context, component docs, and usage examples. Applies when working with shadcn/ui, component registries, presets, --preset codes, or any project with a components.json file. Also triggers for "shadcn init", "create an app with --preset", or "switch to --preset".
route-handler-authoring
Conventions for writing Hono route handlers that forward validated bodies to DAL functions, and CRUD test requirements for round-trip field persistence. Triggers on: creating new routes, modifying handlers, adding CRUD tests, route handler patterns, field-picking, spread pattern, DAL forwarding, check:route-handler-patterns, CI check failure.
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.
pr-review-appsec-vendored
Stack-specific application security checklist for this repo's frameworks: better-auth, SpiceDB/AuthZed, and Next.js RSC. Extends the generalizable pr-review-appsec agent with patterns that require framework-specific knowledge to detect. Loaded by pr-review-appsec.
next-upgrade
Upgrade Next.js to the latest version following official migration guides and codemods
next-cache-components
Next.js 16 Cache Components - PPR, use cache directive, cacheLife, cacheTag, updateTag