docs(channel-skills): rewrite all 13 /add-*-v2 skills for copy-from-channels-branch pattern

Each skill now:
- Pre-flight: checks for file present + import line + dep listed (idempotent)
- git fetch origin channels
- git show origin/channels:<paths> > <paths> to copy adapter (and helpers/tests/setup-step where applicable)
- Append `import './<chan>.js';` to src/channels/index.ts
- pnpm install <pkg>@<pinned-version>
- pnpm run build

Telegram additionally copies 4 helper/test files + setup/pair-telegram.ts
and registers `'pair-telegram':` in setup/index.ts STEPS.

WhatsApp (native) additionally copies setup/whatsapp-auth.ts and
registers `'whatsapp-auth':` in setup/index.ts STEPS, installs
@whiskeysockets/baileys + qrcode + @types/qrcode pinned.

All credential / next-steps / channel-info / troubleshooting sections
preserved verbatim.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gavrielc
2026-04-17 14:24:20 +03:00
parent 437ba63a2f
commit a3376c25df
13 changed files with 427 additions and 98 deletions
+32 -8
View File
@@ -7,23 +7,47 @@ description: Add Discord bot channel integration to NanoClaw v2 via Chat SDK.
Adds Discord bot support to NanoClaw v2. Discord is built in — no adapter package to install.
## Pre-flight
Check if `src/channels/discord.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials.
## Install
Discord support is bundled with NanoClaw — there is no separate package to install.
v2 trunk doesn't ship channels. This skill copies the Discord adapter in from the `channels` branch.
### Enable the channel
### Pre-flight (idempotent)
Uncomment the Discord import in `src/channels/index.ts`:
Skip to **Credentials** if all of these are already in place:
- `src/channels/discord.ts` exists
- `src/channels/index.ts` contains `import './discord.js';`
- `@chat-adapter/discord` is listed in `package.json` dependencies
Otherwise continue. Every step below is safe to re-run.
### 1. Fetch the channels branch
```bash
git fetch origin channels
```
### 2. Copy the adapter
```bash
git show origin/channels:src/channels/discord.ts > src/channels/discord.ts
```
### 3. Append the self-registration import
Append to `src/channels/index.ts` (skip if the line is already present):
```typescript
import './discord.js';
```
### Build
### 4. Install the adapter package (pinned)
```bash
pnpm install @chat-adapter/discord@4.26.0
```
### 5. Build
```bash
pnpm run build
+32 -6
View File
@@ -7,22 +7,48 @@ description: Add Google Chat channel integration to NanoClaw v2 via Chat SDK.
Adds Google Chat support to NanoClaw v2 using the Chat SDK bridge.
## Pre-flight
Check if `src/channels/gchat.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials.
## Install
v2 trunk doesn't ship channels. This skill copies the Google Chat adapter in from the `channels` branch.
### Pre-flight (idempotent)
Skip to **Credentials** if all of these are already in place:
- `src/channels/gchat.ts` exists
- `src/channels/index.ts` contains `import './gchat.js';`
- `@chat-adapter/gchat` is listed in `package.json` dependencies
Otherwise continue. Every step below is safe to re-run.
### 1. Fetch the channels branch
```bash
pnpm install @chat-adapter/gchat
git fetch origin channels
```
Uncomment the Google Chat import in `src/channels/index.ts`:
### 2. Copy the adapter
```bash
git show origin/channels:src/channels/gchat.ts > src/channels/gchat.ts
```
### 3. Append the self-registration import
Append to `src/channels/index.ts` (skip if the line is already present):
```typescript
import './gchat.js';
```
### 4. Install the adapter package (pinned)
```bash
pnpm install @chat-adapter/gchat@4.26.0
```
### 5. Build
```bash
pnpm run build
```
+32 -6
View File
@@ -7,22 +7,48 @@ description: Add GitHub channel integration to NanoClaw v2 via Chat SDK. PR and
Adds GitHub support to NanoClaw v2 using the Chat SDK bridge. The agent participates in PR and issue comment threads.
## Pre-flight
Check if `src/channels/github.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials.
## Install
v2 trunk doesn't ship channels. This skill copies the GitHub adapter in from the `channels` branch.
### Pre-flight (idempotent)
Skip to **Credentials** if all of these are already in place:
- `src/channels/github.ts` exists
- `src/channels/index.ts` contains `import './github.js';`
- `@chat-adapter/github` is listed in `package.json` dependencies
Otherwise continue. Every step below is safe to re-run.
### 1. Fetch the channels branch
```bash
pnpm install @chat-adapter/github
git fetch origin channels
```
Uncomment the GitHub import in `src/channels/index.ts`:
### 2. Copy the adapter
```bash
git show origin/channels:src/channels/github.ts > src/channels/github.ts
```
### 3. Append the self-registration import
Append to `src/channels/index.ts` (skip if the line is already present):
```typescript
import './github.js';
```
### 4. Install the adapter package (pinned)
```bash
pnpm install @chat-adapter/github@4.26.0
```
### 5. Build
```bash
pnpm run build
```
+32 -6
View File
@@ -7,22 +7,48 @@ description: Add iMessage channel integration to NanoClaw v2 via Chat SDK. Local
Adds iMessage support to NanoClaw v2 using the Chat SDK bridge. Two modes: local (macOS with Full Disk Access) or remote (Photon API).
## Pre-flight
Check if `src/channels/imessage.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials.
## Install
v2 trunk doesn't ship channels. This skill copies the iMessage adapter in from the `channels` branch.
### Pre-flight (idempotent)
Skip to **Credentials** if all of these are already in place:
- `src/channels/imessage.ts` exists
- `src/channels/index.ts` contains `import './imessage.js';`
- `chat-adapter-imessage` is listed in `package.json` dependencies
Otherwise continue. Every step below is safe to re-run.
### 1. Fetch the channels branch
```bash
pnpm install chat-adapter-imessage
git fetch origin channels
```
Uncomment the iMessage import in `src/channels/index.ts`:
### 2. Copy the adapter
```bash
git show origin/channels:src/channels/imessage.ts > src/channels/imessage.ts
```
### 3. Append the self-registration import
Append to `src/channels/index.ts` (skip if the line is already present):
```typescript
import './imessage.js';
```
### 4. Install the adapter package (pinned)
```bash
pnpm install chat-adapter-imessage@0.1.1
```
### 5. Build
```bash
pnpm run build
```
+32 -6
View File
@@ -7,22 +7,48 @@ description: Add Linear channel integration to NanoClaw v2 via Chat SDK. Issue c
Adds Linear support to NanoClaw v2 using the Chat SDK bridge. The agent participates in issue comment threads.
## Pre-flight
Check if `src/channels/linear.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials.
## Install
v2 trunk doesn't ship channels. This skill copies the Linear adapter in from the `channels` branch.
### Pre-flight (idempotent)
Skip to **Credentials** if all of these are already in place:
- `src/channels/linear.ts` exists
- `src/channels/index.ts` contains `import './linear.js';`
- `@chat-adapter/linear` is listed in `package.json` dependencies
Otherwise continue. Every step below is safe to re-run.
### 1. Fetch the channels branch
```bash
pnpm install @chat-adapter/linear
git fetch origin channels
```
Uncomment the Linear import in `src/channels/index.ts`:
### 2. Copy the adapter
```bash
git show origin/channels:src/channels/linear.ts > src/channels/linear.ts
```
### 3. Append the self-registration import
Append to `src/channels/index.ts` (skip if the line is already present):
```typescript
import './linear.js';
```
### 4. Install the adapter package (pinned)
```bash
pnpm install @chat-adapter/linear@4.26.0
```
### 5. Build
```bash
pnpm run build
```
+32 -6
View File
@@ -7,22 +7,48 @@ description: Add Matrix channel integration to NanoClaw v2 via Chat SDK. Works w
Adds Matrix support to NanoClaw v2 using the Chat SDK bridge.
## Pre-flight
Check if `src/channels/matrix.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials.
## Install
v2 trunk doesn't ship channels. This skill copies the Matrix adapter in from the `channels` branch.
### Pre-flight (idempotent)
Skip to **Credentials** if all of these are already in place:
- `src/channels/matrix.ts` exists
- `src/channels/index.ts` contains `import './matrix.js';`
- `@beeper/chat-adapter-matrix` is listed in `package.json` dependencies
Otherwise continue. Every step below is safe to re-run.
### 1. Fetch the channels branch
```bash
pnpm install @beeper/chat-adapter-matrix
git fetch origin channels
```
Uncomment the Matrix import in `src/channels/index.ts`:
### 2. Copy the adapter
```bash
git show origin/channels:src/channels/matrix.ts > src/channels/matrix.ts
```
### 3. Append the self-registration import
Append to `src/channels/index.ts` (skip if the line is already present):
```typescript
import './matrix.js';
```
### 4. Install the adapter package (pinned)
```bash
pnpm install @beeper/chat-adapter-matrix@0.2.0
```
### 5. Build
```bash
pnpm run build
```
+31 -7
View File
@@ -7,23 +7,47 @@ description: Add Resend (email) channel integration to NanoClaw v2 via Chat SDK.
Connect NanoClaw to email via Resend for async email conversations.
## Pre-flight
Check if `src/channels/resend.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials.
## Install
v2 trunk doesn't ship channels. This skill copies the Resend adapter in from the `channels` branch.
### Pre-flight (idempotent)
Skip to **Credentials** if all of these are already in place:
- `src/channels/resend.ts` exists
- `src/channels/index.ts` contains `import './resend.js';`
- `@resend/chat-sdk-adapter` is listed in `package.json` dependencies
Otherwise continue. Every step below is safe to re-run.
### 1. Fetch the channels branch
```bash
pnpm install @resend/chat-sdk-adapter
git fetch origin channels
```
Uncomment the Resend import in `src/channels/index.ts`:
### 2. Copy the adapter
```bash
git show origin/channels:src/channels/resend.ts > src/channels/resend.ts
```
### 3. Append the self-registration import
Append to `src/channels/index.ts` (skip if the line is already present):
```typescript
import './resend.js';
```
Build:
### 4. Install the adapter package (pinned)
```bash
pnpm install @resend/chat-sdk-adapter@0.1.1
```
### 5. Build
```bash
pnpm run build
+29 -9
View File
@@ -7,27 +7,47 @@ description: Add Slack channel integration to NanoClaw v2 via Chat SDK.
Adds Slack support to NanoClaw v2 using the Chat SDK bridge.
## Pre-flight
Check if `src/channels/slack.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials.
## Install
### Install the adapter package
v2 trunk doesn't ship channels. This skill copies the Slack adapter in from the `channels` branch.
### Pre-flight (idempotent)
Skip to **Credentials** if all of these are already in place:
- `src/channels/slack.ts` exists
- `src/channels/index.ts` contains `import './slack.js';`
- `@chat-adapter/slack` is listed in `package.json` dependencies
Otherwise continue. Every step below is safe to re-run.
### 1. Fetch the channels branch
```bash
pnpm install @chat-adapter/slack
git fetch origin channels
```
### Enable the channel
### 2. Copy the adapter
Uncomment the Slack import in `src/channels/index.ts`:
```bash
git show origin/channels:src/channels/slack.ts > src/channels/slack.ts
```
### 3. Append the self-registration import
Append to `src/channels/index.ts` (skip if the line is already present):
```typescript
import './slack.js';
```
### Build
### 4. Install the adapter package (pinned)
```bash
pnpm install @chat-adapter/slack@4.26.0
```
### 5. Build
```bash
pnpm run build
+31 -7
View File
@@ -7,23 +7,47 @@ description: Add Microsoft Teams channel integration to NanoClaw v2 via Chat SDK
Connect NanoClaw to Microsoft Teams for interactive chat in team channels, group chats, and direct messages.
## Pre-flight
Check if `src/channels/teams.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials.
## Install
v2 trunk doesn't ship channels. This skill copies the Teams adapter in from the `channels` branch.
### Pre-flight (idempotent)
Skip to **Credentials** if all of these are already in place:
- `src/channels/teams.ts` exists
- `src/channels/index.ts` contains `import './teams.js';`
- `@chat-adapter/teams` is listed in `package.json` dependencies
Otherwise continue. Every step below is safe to re-run.
### 1. Fetch the channels branch
```bash
pnpm install @chat-adapter/teams
git fetch origin channels
```
Uncomment the Teams import in `src/channels/index.ts`:
### 2. Copy the adapter
```bash
git show origin/channels:src/channels/teams.ts > src/channels/teams.ts
```
### 3. Append the self-registration import
Append to `src/channels/index.ts` (skip if the line is already present):
```typescript
import './teams.js';
```
Build:
### 4. Install the adapter package (pinned)
```bash
pnpm install @chat-adapter/teams@4.26.0
```
### 5. Build
```bash
pnpm run build
+43 -9
View File
@@ -7,27 +7,61 @@ description: Add Telegram channel integration to NanoClaw v2 via Chat SDK.
Adds Telegram bot support to NanoClaw v2 using the Chat SDK bridge.
## Pre-flight
Check if `src/channels/telegram.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials.
## Install
### Install the adapter package
v2 trunk doesn't ship channels. This skill copies the Telegram adapter, its formatting/pairing helpers, their tests, and the `pair-telegram` setup step in from the `channels` branch.
### Pre-flight (idempotent)
Skip to **Credentials** if all of these are already in place:
- `src/channels/telegram.ts`, `telegram-pairing.ts`, `telegram-markdown-sanitize.ts` (and their `.test.ts` siblings) all exist
- `src/channels/index.ts` contains `import './telegram.js';`
- `setup/pair-telegram.ts` exists and `setup/index.ts`'s `STEPS` map contains `'pair-telegram':`
- `@chat-adapter/telegram` is listed in `package.json` dependencies
Otherwise continue. Every step below is safe to re-run.
### 1. Fetch the channels branch
```bash
pnpm install @chat-adapter/telegram
git fetch origin channels
```
### Enable the channel
### 2. Copy the adapter, helpers, tests, and setup step
Uncomment the Telegram import in `src/channels/index.ts`:
```bash
git show origin/channels:src/channels/telegram.ts > src/channels/telegram.ts
git show origin/channels:src/channels/telegram-pairing.ts > src/channels/telegram-pairing.ts
git show origin/channels:src/channels/telegram-pairing.test.ts > src/channels/telegram-pairing.test.ts
git show origin/channels:src/channels/telegram-markdown-sanitize.ts > src/channels/telegram-markdown-sanitize.ts
git show origin/channels:src/channels/telegram-markdown-sanitize.test.ts > src/channels/telegram-markdown-sanitize.test.ts
git show origin/channels:setup/pair-telegram.ts > setup/pair-telegram.ts
```
### 3. Append the self-registration import
Append to `src/channels/index.ts` (skip if already present):
```typescript
import './telegram.js';
```
### Build
### 4. Register the setup step
In `setup/index.ts`, add this entry to the `STEPS` map (right after the `register` line is fine; skip if already present):
```typescript
'pair-telegram': () => import('./pair-telegram.js'),
```
### 5. Install the adapter package (pinned)
```bash
pnpm install @chat-adapter/telegram@4.26.0
```
### 6. Build
```bash
pnpm run build
+32 -6
View File
@@ -7,22 +7,48 @@ description: Add Webex channel integration to NanoClaw v2 via Chat SDK.
Adds Cisco Webex support to NanoClaw v2 using the Chat SDK bridge.
## Pre-flight
Check if `src/channels/webex.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials.
## Install
v2 trunk doesn't ship channels. This skill copies the Webex adapter in from the `channels` branch.
### Pre-flight (idempotent)
Skip to **Credentials** if all of these are already in place:
- `src/channels/webex.ts` exists
- `src/channels/index.ts` contains `import './webex.js';`
- `@bitbasti/chat-adapter-webex` is listed in `package.json` dependencies
Otherwise continue. Every step below is safe to re-run.
### 1. Fetch the channels branch
```bash
pnpm install @bitbasti/chat-adapter-webex
git fetch origin channels
```
Uncomment the Webex import in `src/channels/index.ts`:
### 2. Copy the adapter
```bash
git show origin/channels:src/channels/webex.ts > src/channels/webex.ts
```
### 3. Append the self-registration import
Append to `src/channels/index.ts` (skip if the line is already present):
```typescript
import './webex.js';
```
### 4. Install the adapter package (pinned)
```bash
pnpm install @bitbasti/chat-adapter-webex@0.1.0
```
### 5. Build
```bash
pnpm run build
```
+31 -7
View File
@@ -7,23 +7,47 @@ description: Add WhatsApp Business Cloud API channel to NanoClaw v2 via Chat SDK
Connect NanoClaw to WhatsApp via the official Meta WhatsApp Business Cloud API.
## Pre-flight
Check if `src/channels/whatsapp-cloud.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials.
## Install
v2 trunk doesn't ship channels. This skill copies the WhatsApp Cloud adapter in from the `channels` branch.
### Pre-flight (idempotent)
Skip to **Credentials** if all of these are already in place:
- `src/channels/whatsapp-cloud.ts` exists
- `src/channels/index.ts` contains `import './whatsapp-cloud.js';`
- `@chat-adapter/whatsapp` is listed in `package.json` dependencies
Otherwise continue. Every step below is safe to re-run.
### 1. Fetch the channels branch
```bash
pnpm install @chat-adapter/whatsapp
git fetch origin channels
```
Uncomment the WhatsApp Cloud API import in `src/channels/index.ts`:
### 2. Copy the adapter
```bash
git show origin/channels:src/channels/whatsapp-cloud.ts > src/channels/whatsapp-cloud.ts
```
### 3. Append the self-registration import
Append to `src/channels/index.ts` (skip if the line is already present):
```typescript
import './whatsapp-cloud.js';
```
Build:
### 4. Install the adapter package (pinned)
```bash
pnpm install @chat-adapter/whatsapp@4.26.0
```
### 5. Build
```bash
pnpm run build
+38 -15
View File
@@ -7,36 +7,59 @@ description: Add WhatsApp channel to NanoClaw v2 using native Baileys adapter. D
Adds WhatsApp support to NanoClaw v2 using the native Baileys adapter (no Chat SDK bridge).
## Pre-flight
Check if `src/channels/whatsapp.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials.
## Install
### Install the adapter packages
v2 trunk doesn't ship channels. This skill copies the native WhatsApp (Baileys) adapter and its `whatsapp-auth` setup step in from the `channels` branch. No Chat SDK bridge.
### Pre-flight (idempotent)
Skip to **Credentials** if all of these are already in place:
- `src/channels/whatsapp.ts` exists
- `src/channels/index.ts` contains `import './whatsapp.js';`
- `setup/whatsapp-auth.ts` exists and `setup/index.ts`'s `STEPS` map contains `'whatsapp-auth':`
- `@whiskeysockets/baileys`, `qrcode` are listed in `package.json` dependencies
Otherwise continue. Every step below is safe to re-run.
### 1. Fetch the channels branch
```bash
pnpm install @whiskeysockets/baileys@^6.7.21 pino@^9.6.0 qrcode@^1.5.4 @types/qrcode@^1.5.6
git fetch origin channels
```
### Enable the channel
If `src/channels/whatsapp.ts` is missing, fetch it from upstream:
### 2. Copy the adapter and setup step
```bash
git remote -v | grep -q upstream || git remote add upstream https://github.com/qwibitai/nanoclaw.git
git fetch upstream v2
git checkout upstream/v2 -- src/channels/whatsapp.ts
git show origin/channels:src/channels/whatsapp.ts > src/channels/whatsapp.ts
git show origin/channels:setup/whatsapp-auth.ts > setup/whatsapp-auth.ts
```
Uncomment or add the WhatsApp import in `src/channels/index.ts`:
### 3. Append the self-registration import
Append to `src/channels/index.ts` (skip if already present):
```typescript
// whatsapp (native, no Chat SDK)
import './whatsapp.js';
```
### Build
### 4. Register the setup step
In `setup/index.ts`, add this entry to the `STEPS` map (skip if already present):
```typescript
'whatsapp-auth': () => import('./whatsapp-auth.js'),
```
### 5. Install the adapter packages (pinned)
```bash
pnpm install @whiskeysockets/baileys@6.17.16 qrcode@1.5.4 @types/qrcode@1.5.6
```
`pino` is already a v2 trunk dependency — no separate install needed.
### 6. Build
```bash
pnpm run build