Use for real bot-channel acceptance in Discord, Slack, Telegram, WeChat/Weixin, Lark/Feishu, QQ or iMessage on macOS. Extends acceptance with native chat apps.
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-agent-testing-bot-f1957e75fdc2 ,按照其中的说明把「agent-testing-bot」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
This skill extends the generic acceptance skill (installed alongside at
../acceptance/) to the bot-channel surfaces. It does NOT replace the core
process: the same three phases apply —
PLAN (Steps 0–2) → EXECUTE (Steps 3–6) → FINISH (Step 7)
— and the same report + publish pipeline (result.json → report-init.sh →
lh acceptance run ingest … --source agent-testing). Read the acceptance skill's
SKILL.md for target grounding, the living logs, the Phase-1 approval gate, the
report format, and teardown. This file only adds the bot-channel surface.
For LobeHub environment/auth/probe specifics (dev server, seeded account, ports),
the adapter is .agents/acceptance/PROJECT.md.
| Change scope | Surface | Why |
|---|---|---|
| Bot channels (Discord / WeChat / Lark / …) | Native app via osascript / bridge | Only way to exercise the real channel end-to-end |
Route here only when the behavior under test is a bot channel. For CLI / Web / Electron changes, use the generic skill's surfaces.
Each platform folder has an index.md (activation, navigation, send-message,
verification snippets) and a test-<platform>-bot.sh driver.
| Platform | Guide | Quick switcher |
|---|---|---|
| Discord | discord/index.md | Cmd+K |
| Slack | slack/index.md | Cmd+K |
| Telegram | telegram/index.md | Cmd+F |
| WeChat / 微信 | wechat/index.md | Cmd+F |
| Lark / 飞书 | lark/index.md | Cmd+K |
| qq/index.md | Cmd+F | |
| iMessage | imessage/index.md | bridge (no osascript) |
Every osascript platform script shares one interface:
./$PLATFORM/test-$PLATFORM-bot.sh $CHANNEL_OR_CONTACT $MESSAGE [$WAIT_SECONDS] [$SCREENSHOT_PATH]
The script activates the app, navigates to the channel/contact, sends the
message, waits, and screenshots the result window (via the project adapter's
../../acceptance/scripts/capture-app-window.sh, which runs the installed
acceptance skill's screen-recording preflight). iMessage is the exception: it
uses a BlueBubbles bridge, not osascript — see imessage/index.md.
The osascript platforms drive real macOS apps (activate, keystroke, click, read accessibility, screenshot). Read the generic skill's general macOS-automation reference before a first bot run: ../../acceptance/references/osascript.md. The target native app must already be running and logged in.
Bot evidence is captured with OS-level screencapture (through
capture-app-window.sh), NOT CDP — so it comes out entirely black when macOS
Screen Recording (TCC) permission is missing OR the display is asleep / locked /
on a screensaver. Gate BEFORE any bot capture:
bash .agents/skills/acceptance/scripts/check-screen-recording.sh
Only exit 0 confirms both permission and a measured non-black frame. Missing tools or an undetermined check must block capture, not count as a pass.
Keep the display awake for the whole capture session (caffeinate -dimsu &, kill
when done). Because this surface depends on OS capture and native macOS apps,
bot channels are macOS-only — they do not run headless / in cloud.