migrate-slack-agents

Featured

Migrate a classic single-bot Slack install to one provisioned Slack app per existing agent group while preserving agent identities, workspaces, memory, and wiring behavior — or record the operator's choice to stay on classic, which remains supported. Use when /update-nanoclaw surfaces the Slack agents requirement, or standalone any time later.

AI & Automation 30,616 stars 12844 forks Updated today MIT

Install

View on GitHub

Quality Score: 93/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Migrate classic Slack agents Turn every agent group wired through the classic `instance='slack'` adapter into a named `slack-<slug>` bot without replacing the agent group. This is an operator-guided, resumable data migration. It never creates an agent group and never edits an agent workspace. Migration is optional. Classic single-bot Slack remains fully supported; this skill first offers the choice, and staying on classic is a valid outcome that also satisfies the update requirement. Hard invariants: - Never call `create_agent` or `ncl groups create`. - Never change an `agent_groups.id` or write under `groups/<folder>/`. - Never merge the `channels` branch; fetch and copy skill-owned files only. - Never print token values. Show key names and masked presence only. - Keep classic rows, credentials, and the shared Slack app available for rollback until the operator explicitly approves cutover. ## Phase 1: Detect classic state Run from the NanoClaw project root. Read the central DB only through the sanctioned wrapper. Classic state requires all four signals: 1. `src/channels/index.ts` contains the Slack barrel import `import './slack.js';`. 2. `.env` has a non-empty unsuffixed `SLACK_BOT_TOKEN` and either a non-empty `SLACK_APP_TOKEN` or `SLACK_SIGNING_SECRET`. Check presence without echoing values. 3. This query returns at least one row: ```bash pnpm exec tsx scripts/q.ts data/v2.db "SELECT mg.id, mga.id, mga.agent_group_id FROM messaging_groups mg JO...

Details

Author
nanocoai
Repository
nanocoai/nanoclaw
Created
6 months ago
Last Updated
today
Language
TypeScript
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category