Communityコーディング&開発github.com

Telegram Crabbox E2E Proof

実際のTelegramユーザーセッションを使用して、OpenClaw Telegramの動作をレビュー、再現、証明するためのスキルです。PRレビューワークフローにおいて、エージェント制御によるTelegram Desktop録画、TDLibユーザードライバコマンド、Convexリース認証情報、WebVNC観察、モーショントリムされたアーティファクトを活用します。

Telegram Crabbox E2E Proof とは?

このスキルは、OpenClaw Telegramのエンドツーエンドテストを、実際のTelegramユーザーセッションを通じて実施し、視覚的な証拠を生成するためのものです。ボット間のテストだけでは不十分な、PRレビューやバグ再現のシナリオに特に有効です。エージェントは、Convexからリースされた共有バーナーアカウントを使用し、TDLibとTelegram Desktopを復元します。セッション中は、デスクトップ録画、WebVNC経由の観察、メッセージ送信、任意のコマンド実行が可能で、セッション終了時にはモーショントリムされたGIF/MP4が生成されます。このスキルは、OpenClawリポジトリでのPRレビューワークフローに統合することを想定しており、クラウド上のCrabboxインスタンスで実行されます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/telegram-crabbox-e2e-proof

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Telegram Crabbox E2E Proof は何をしますか?

ボット間の証明だけでは不十分な、TelegramのPRレビューやバグ再現に使用します。目的は、エージェントが満足するまで実際のTelegramユーザーセッションを維持し、その後視覚的な証拠を添付できるようにすることです。

個人アカウントは使用しないでください。認証情報をリポジトリ、プロンプト、アーティファクトバンドルに追加しないでください。ランナーはConvexから共有バーナーアカウントをリースします。

開始

テスト対象のOpenClawリポジトリとブランチで実行します:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" start \
  --tdlib-url http://artifacts.openclaw.ai/tdlib-v1.8.0-linux-x64.tgz \
  --output-dir .artifacts/qa-e2e/telegram-user-crabbox/pr-review

これにより、1つの保持セッションが開始されます:

  • 排他的な telegram-user Convex認証情報をリース
  • 同じユーザーアカウントでTDLibとTelegram Desktopを復元
  • 現在のチェックアウトからモックのOpenClaw Telegram SUTを起動
  • 表示されているLinuxデスクトップで設定されたTelegramチャットを選択
  • 24fpsのデスクトップ録画を開始
  • .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json に書き込み

調査中はセッションをアクティブに保ってください。エージェントが数分間テストし、いくつかのコマンドを実行し、WebVNCを使用し、トランスクリプトを検査し、動作を理解した時点で終了することが有効です。

決定論的な視覚的な再現のためには、正確なモックモデルの応答をファイルに保存し、それを start に渡します:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" start \
  --tdlib-url http://artifacts.openclaw.ai/tdlib-v1.8.0-linux-x64.tgz \
  --mock-response-file .artifacts/qa-e2e/telegram-user-crabbox/reply.txt \
  --output-dir .artifacts/qa-e2e/telegram-user-crabbox/pr-review

ランナーのデフォルトは --class standard、--record-fps 24、--preview-fps 24、--preview-width 1920 です。証明に特別な要件がない限り、これらのデフォルトを維持してください。

テスト中

視覚的な証拠のために、まず下部のマーカーメッセージを送信または特定し、メッセージIDでグループ/トピックを直接開きます:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" view \
  --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json \
  --message-id <message-id>

これは xdg-open ではなく、tg://privatepost を使用してTelegram Desktopを直接操作します。また、テスト対象のデスクトップ位置でTelegramのサイズを 650x1000 に変更し、Telegramが分割/サイドバーレイアウトを維持していても、クロップでチャットペインを分離できるようにします。この後にEscapeキーを押さないでください。Escapeキーは選択したチャットを閉じる可能性があります。

下部の動作が重要です:

  • 最新のメッセージへのディープリンクはTelegramを下部に固定するため、後続のメッセージが録画にライブで表示されます
  • 古いメッセージへのディープリンクは新しいメッセージの自動スクロールを行いません。下矢印をクリックする代わりに、最新/最終マーカーに再度リンクしてください
  • クロップされたGIFは意図的にチャットペインを使用し、デスクトップ全体やTelegramウィンドウ全体ではありません

実際のTelegramユーザーとして送信:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" send \
  --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json \
  --text /status

スラッシュコマンドの場合は、ボットのユーザー名を省略します。ランナーはSUTボットをターゲットにします。

Crabbox上で任意のコマンドを実行:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" run \
  --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json \
  -- bash -lc 'source /tmp/openclaw-telegram-user-crabbox/env.sh && python3 /tmp/openclaw-telegram-user-crabbox/user-driver.py transcript --limit 20 --json'

便利なリモートユーザードライバコマンド:

source /tmp/openclaw-telegram-user-crabbox/env.sh
python3 /tmp/openclaw-telegram-user-crabbox/user-driver.py status --json
python3 /tmp/openclaw-telegram-user-crabbox/user-driver.py chats --json
python3 /tmp/openclaw-telegram-user-crabbox/user-driver.py transcript --limit 20 --json
python3 /tmp/openclaw-telegram-user-crabbox/user-driver.py send --text '/status@{sut}'
python3 /tmp/openclaw-telegram-user-crabbox/user-driver.py probe --text '@{sut} Reply exactly: USER-E2E-{run}' --expect USER-E2E-

セッションを終了せずに現在のデスクトップをキャプチャ:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" screenshot \
  --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json

リース状態を確認し、WebVNCコマンドを取得:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" status \
  --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json

終了

常に終了するか、明示的にボックスを保持します:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" finish \
  --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json \
  --preview-crop telegram-window

finish は録画を停止し、モーショントリムされたMP4/GIFアーティファクトを作成し、最終スクリーンショットとログをキャプチャし、Convex認証情報を解放し、ローカルSUTを停止し、Crabboxリースを停止します。--preview-crop telegram-window は、テスト済みのTelegram証明ウィンドウから固定ジオメトリのGIFを作成し、クリーンなサイドバイサイドのPRテーブルを実現します。完全なデスクトップビデオ/GIFはアーティファクトディレクトリに残ります。認証情報が解放された後、人間がVNCデバッグを続行する必要がある場合にのみ --keep-box を渡します。

障害や中断後は、クリーンアップを確認します:

crabbox list --provider aws

セッションファイルが存在し、認証情報がまだリースされている可能性がある場合は、再試行する前にそのセッションファイルで finish を実行します。

証明を添付

ログが必要でない限り、有用な視覚アーティファクトのみをPRに添付します。ランナーはデフォルトでGIFのみです:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" publish \
  --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json \
  --pr <pr-number> \
  --summary 'Telegram real-user Crabbox session motion GIF'

これにより、有用なGIFのみが一時的な公開バンドルにコピーされ、そのGIFがコメントされます。finish --preview-crop telegram-window がクロップされたGIFを生成した場合は、publishがそれを使用します。そうでない場合は telegram-user-crabbox-session-motion.gif を使用します。PRにログやJSON出力が必要な場合にのみ --full-artifacts を使用します。認証情報ペイロード、ローカルのenvファイル、TDLibデータベース、Telegram Desktopプロファイル、または生のセッションアーカイブを公開しないでください。

before/after証明の場合は、main で1つのセッション、PRヘッドでもう1つのセッションを実行し、クリーンなバンドルから目的のGIFのみを公開します:

mkdir -p .artifacts/qa-e2e/telegram-user-crabbox/pr-123/comparison
cp <main-output>/telegram-user-crabbox-session-motion-telegram-window.gif \
  .artifacts/qa-e2e/telegram-user-crabbox/pr-123/comparison/main-before.gif
cp <pr-output>/telegram-user-crabbox-session-motion-telegram-window.gif \
  .artifacts/qa-e2e/telegram-user-crabbox/pr-123/comparison/pr-after.gif
crabbox artifacts publish \
  --repo openclaw/openclaw \
  --pr 123 \
  --dir .artifacts/qa-e2e/telegram-user-crabbox/pr-123/comparison \
  --summary 'Telegram before/after proof' \
  --no-comment

その後、これら2つのURLを含む簡潔なマークダウンテーブルを投稿します。スクリーンショット、生のビデオ、ログ、セッションJSON、またはクロップ実験を含む作業ディレクトリは、それらのアーティファクトが明示的に必要でない限り公開しないでください。

クイックスモーク

高速なワンショットチェックには、以下を使用します:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" --text /status

これはstart/send/finishのショートカットです。PRレビュー、問題再現、またはエージェントが複数回試行する必要があるタスクには、保持セッションを推奨します。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

関連スキル