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

Crabbox(クラウドテストボックススキル)

CrabboxとBlacksmith Testboxを使ったリモートテスト:分離、クロスプラットフォームE2E、診断、クリーンアップを実現します。

Crabbox(クラウドテストボックススキル) とは?

このスキルは、アプリケーションのリモートテストを効率的かつ安全に行うためのものです。CrabboxとBlacksmith Testboxという2つのバックエンドを利用し、分離された環境でのE2Eテストや診断、環境クリーンアップを自動化します。AWSやローカルDocker、SSH経由のホストなど、複数のプロバイダをサポートしており、テストの性質や信頼性に応じて最適なバックエンドを選択することが重要です。また、リソースの有効期限やアイドルタイムアウトなどのライフサイクル管理、プロバイダの認証情報やセキュリティ設定に関する厳格なルールが定められており、安全で再現性のあるテスト実行が可能です。このスキルは特に、Claude CodeやCursorなどのAIエージェントツールと組み合わせて、レビュー前のコード検証や不具合の再現、クロスプラットフォームテストの自動化に役立ちます。

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

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

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

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

ドキュメント

Crabbox(クラウドテストボックススキル) は何をしますか?

  • 意図的なリモート証明: 証明ポリシーに従う。適格で利用可能なホスト上での、制限されたローカル証明を優先する。高コストまたはプラットフォーム固有の作業にはリモート容量を使用できる。キューイングが発生した場合は、自身の割り当てを停止し、PR CIまたは安全なローカルスコープを使用し、未対応の要件を報告する。公開前に必要なビルドが利用できない場合は、テスティングスキルのドラフト/CI証明ポリシーを使用する。
  • キューを待ったり、プロバイダのフォールバックを連鎖させたりしてはならない。

バックエンド:

  • blacksmith-testbox: 信頼できるメンテナソース。準備済みCI。tbx_...。
  • aws: 直接仲介されるCrabbox。新しいPR。カスタム同期/env/キャプチャ。cbx_...。
  • local-container: Dockerフォールバック。リモート証明ではない。
  • ssh: 既存のオペレーターホスト。macOS/Windows/WSL2。

常にプロバイダ、ID、実行URL、コマンド、結果を報告すること。Testboxを「AWS Crabbox」と呼んではならない。

リポジトリ契約

  • 信頼できるコンシューマの指示に基づいて、サンプルコマンド、ブートストラップ、コンテナイメージ、PRを解決すること。コマンドを創作したり、別のコンシューマのセットアップをコピーしたりしてはならない。
  • コンシューマ固有のセットアップは、ポータブルスキルの外に保持すること。プレースホルダー定義を参照。

認可と分離

  • タスクに必要な作成、再利用、クリーンアップ、一時的な状態、クリーンチェックアウト: 事前承認済み。既存のブランチ、チェックアウト、無関係な編集を保持すること。
  • ソースの信頼性、認証情報、本番環境アクセス、予算、公開は権限の境界として残る。分離された状態。タスクごとの承認なしに、オペレーターGatewayに触れてはならない。

ルート優先

  • 解決済みのプロバイダを保持する: Testbox(信頼できるソース)、AWS(そのセマンティクスが必要な場合)、secretless CI/AWS(信頼できないコードの場合)。信頼できないラッパー/設定をローカルで実行したり、信頼できないリースをハイドレートしたりしてはならない。
  • コマンドの準備ができたら取得し、所有するIDを再利用し、その後停止する。
  • 最小限の証明済みプロファイル。より大きなものは、記録されたメモリの証拠または測定された総コストメリットが必要であり、一般的な障害/遅延/タイムアウトでは不十分。ワーカー数を増やして補ってはならない。
  • Testboxのサイジング: --blacksmith-workflowを使用し、直接--class/--typeを使用しないこと。プロファイルの変更には新しいリースが必要。
  • Blacksmithランナーラベルはティアを要求するものであり、CPUやRAMを保証するものではない。Blacksmithはサービスの可用性に応じてより小さなマシンを割り当てることができる。リソースに敏感なテストやベンチマークでは、割り当てられたマシン上の利用可能なCPU、アフィニティ/クォータ、使用可能なRAMを測定すること。それらの測定値に基づいてワーカーとワークロードのサイズを決めること。要求したティアと観測されたリソースは別々に記録すること。ラベルだけでハードウェアやパフォーマンスを評価してはならない。
  • サイズ、期間、ハイドレーション障害、容量は、決してプロバイダのオーバーライドを許可しない。明示的なユーザー選択または必要なバックエンドセマンティクスがそれを行う。

プレフライト

信頼できるリポジトリルート: .crabbox.yamlを読み込み、インストール済みバイナリを解決し、プロバイダ/コマンドを検査する:

export CRABBOX="$(command -v crabbox)"
test -n "$CRABBOX"
"$CRABBOX" --version
"$CRABBOX" config show --json | jq '{provider, profile, target}'
"$CRABBOX" run --help
  • コンシューマの信頼できるラッパー/インストール手順を使用すること。
  • ネイティブのLinux/WSLコマンドライフサイクルおよびキャンセル証明には、完全に一致するCrabboxディストリビューション、またはCRABBOX_RUNTIME_ARTIFACTSで選択された検証済みランタイムマニフェストが必要。コンパニオンを凍結ソースに一致させ、マニフェストが正確な選択されたコントローラーにバインドされていることを確認すること。ランタイムパックのない開発CLIはレガシーSSH監視を使用する。--versionだけではネイティブ監視を確立できない。割り当て前に選択されたパックを検証すること。CLIのみの証明をネイティブライフサイクル証明としてカウントしてはならない。上流のランタイムアーティファクト手順に従うこと。
  • 修復: 上流を検証し、タスク所有のクリーンチェックアウトを使用し、インストール済みバイナリと無関係なソースを保持すること。兄弟チェックアウトを名前だけで信頼してはならない。

リースライフタイム

  • TTLは作成時からカウントされ、ハイドレーションを含む。アイドルタイムアウトは非アクティブをカウントする。早い期限が優先される。デフォルト: 各30分、最大4時間。所有者/組織のオーバーライドにより最大24時間まで許可される場合がある。効果的なポリシーとサニタイズされたクランプ通知を使用し、要求された期間は使用しない。ポリシーの厳格化はアクティブなリースにも適用される。
  • --keepと stop: neverは有効期限を防がない。保持された直接リースには、明示的な境界TTLとアイドルを要求すること。単なるハートビート、セットアップ、同期、SSH、デスクトップの使用は合計TTLを延長しない。runは、コマンドの実行中にのみ、ポリシー、予算、プロバイダ機能の範囲内で、境界のある自動延長を要求する。
  • 長いソース依存作業の前に、残りの総ライフタイムを検査すること。許可されている場合、1回の境界のあるextend <id> --ttl <desired-total> --jsonを要求すること。延長はアイドルをリセットしない。拒否/予算超過/非サポート/非進行/非アクティブの結果は、プロバイダの切り替えや無限リースチェーンではなく、目に見えるスキップまたは失敗を必要とする。Daytonaなどの作成固定プロバイダは、割り当て時に十分なTTLを必要とする。
  • 直接のゲストリフレッシュ障害により、古いオンボックス期限を持つより長いプロバイダ期限が残る可能性がある。同じローカル状態を維持し、調整のためだけに同じ固定合計TTLを再試行すること。失敗した延長を保護として扱ってはならない。
  • 信頼できるdirectLeases: denyとdirectLeaseAllowを尊重すること。拒否されたプロバイダは、設定されたコーディネータールートを必要とする。直接認証情報でバイパスしてはならない。Testboxはネイティブのジョブおよびアイドル制限を保持する。--ttlは委任されたワークフローを延長しない。
  • listはアクティブなコーディネーターリースを表示する。list --retainedは、クリーンアップが未確認の保持された終了リソースを追加する。回復には正確なIDの検査/停止を使用すること。ブロッキング停止が完了を確認するまで、クレームと回復状態を保持すること。

信頼できるTestbox

解決済みプロバイダ = Testbox(または明示的に要求された場合): コマンドはそれを保持する。明示的なオーバーライドの場合のみ--provider blacksmith-testboxを追加する:

"$CRABBOX" run --timing-json -- CI=1 <check-command>

複数のコマンド: 一度ウォームアップし、IDを保存し、再利用し、停止する。

"$CRABBOX" warmup --keep --timing-json
"$CRABBOX" run --id <tbx_id> --timing-json -- <check-command>
"$CRABBOX" stop <tbx_id>

ルール:

  • 1リース、1アクティブコマンド。実行中の同期/リクレームは不可。
  • bash -cを優先すること。ログインプロファイルはディレクトリを変更する可能性がある。実行シェル内で、物理的なチェックアウトと期待されるソース/パッチをアサートすること。HEADだけではダーティ同期の証明にはならない。コンシューマの文書化されたハイドレーションシェル契約に従うこと。
  • ネイティブのTestboxは、再利用された--id実行を含む、独自の同期を実行する。リモートベースラインに--no-syncを決して依存してはならない。Blacksmithにはネイティブのバイパスがない。リリースされたCrabboxバージョンはフラグを静かに無視する可能性がある。変更されていない意図的な再実行は例外ではない。
  • --reclaimは、意図的なチェックアウトパスの所有権移転にのみ使用する。
  • 再利用のためにコンシューマの割り当て受領書に従うこと。互換性のあるソースコミットは、タスク、物理チェックアウト、ベース、依存関係、準備、ワークフロー/ジョブ/refが変更されていない場合、リースを再利用できる場合がある。元の割り当ての出典を保持すること。互換性のない受領書: 停止し、再度ウォームアップする。古いリースのオーバーライドは不可。
  • 生のSHAはwarmup --refには信頼できない。ブランチ/タグを使用すること。
  • blacksmith testbox listは状態を隠す。list --allまたはstatus --id <tbx_id>を使用すること。
  • Testboxのステータス/停止: --id。ステータス --jsonは不可。
  • 委任されたプロバイダは--fresh-pr、--full-resync、--script*、--env-helper、キャプチャ/ダウンロードフラグを拒否する。

Blacksmithディレクトリダウンロード

再帰的ダウンロード + 必要なリモート末尾スラッシュ: ディレクトリダウンロード。

信頼できないAWS

  • クリーンな信頼できるデフォルトブランチのチェックアウト。インストール済みの信頼できるCrabboxバイナリ。
  • レビュー済みの完全なヘッドSHAごとに新しいリース。インスタンスロール、Tailscale、ハイドレーションは不可。
  • CIのみを転送する。--fresh-prの隣に信頼できるブートストラップをアップロードする。
cd <clean-trusted-default-branch-checkout>
env -u CRABBOX_AWS_INSTANCE_PROFILE \
  "$CRABBOX" config show --json | \
  jq -e '.aws.instanceProfile == ""' >/dev/null

env -u CRABBOX_AWS_INSTANCE_PROFILE \
  -u CRABBOX_TAILSCALE \
  -u CRABBOX_TAILSCALE_AUTH_KEY \
  -u CRABBOX_TAILSCALE_AUTH_KEY_ENV \
  -u CRABBOX_TAILSCALE_EXIT_NODE \
  -u CRABBOX_TAILSCALE_EXIT_NODE_ALLOW_LAN_ACCESS \
  -u CRABBOX_TAILSCALE_HOSTNAME_TEMPLATE \
  -u CRABBOX_TAILSCALE_TAGS \
  "$CRABBOX" warmup \
  --provider aws --network public --tailscale=false \
  --tailscale-exit-node= \
  --tailscale-exit-node-allow-lan-access=false \
  --ttl 4h --idle-timeout 90m --keep --timing-json

"$CRABBOX" inspect --provider aws --id <cbx_id> --json | \
  jq -e '.network == "public" and .tailscale == null' >/dev/null

env -u CRABBOX_AWS_INSTANCE_PROFILE \
  CRABBOX_ENV_ALLOW=CI \
  "$CRABBOX" run \
  --provider aws --id <cbx_id> \
  --fresh-pr <owner/repo#number> \
  --no-hydrate --timing-json \
  --script <trusted-bootstrap-script> -- \
  <expected_full_head_sha> <check-command>

env -u CRABBOX_AWS_INSTANCE_PROFILE \
  "$CRABBOX" stop --provider aws <cbx_id>
  • 信頼できるブートストラップは、IMDSv2 IAM認証情報が404を返すことを証明し、SHAを検証し、ランタイムインジェクション変数を削除し、ツールチェーンを固定し、インストール/テストの前にHOMEを分離する必要がある。
  • 変更されたヘッド: 新しいリース。欠落しているリモートPRまたはロールがないことの証明: secretlessフォークCI。

直接AWS

  • 信頼できるAWSコマンド、認証診断、再同期、クリーンなPR/コンテナ実行: 直接プロバイダを参照。
  • コンテナ実行では--no-hydrateを保持すること。ローカルコンテナの証明はローカルとして報告すること。

可観測性

  • アーティファクトの収集/認証情報の注入: キャプチャと環境フラグを参照。
  • 正確なキー、1つのコマンド。シークレットを決して印刷したり、リポジトリに書き込んだり、シェル履歴に残したりしてはならない。
  • 安全な注入パスがない場合: ライブ認証はブロックされる。フェイクキーの証明は不十分。

実際のE2E

  • リモートの単体テストだけでなく、分離されたコンシューマ状態で要求されたユーザーエントリポイントを実行すること。
  • インストール/プロバイダ/インタラクティブな証明と安全なリビジョン比較: E2E手順を参照。

デスクトップ / クロスOS

SSHターゲット、有料macOSプレフライト、WebVNC、アプリハンドオフ検証: デスクトップおよびクロスOSコマンドを参照。

障害トリアージ

ラッパー、プロバイダ、ハイドレーション、同期、SSH、またはコマンドの障害を特定する:

"$CRABBOX" doctor
"$CRABBOX" status --id <id>
"$CRABBOX" inspect --id <id> --json
"$CRABBOX" logs <run_id>
"$CRABBOX" results <run_id>
blacksmith testbox list --all
blacksmith testbox status --id <tbx_id>
  • キューイングされた容量: 所有する割り当てを停止し、証明ポリシーに従う。再試行ストームやプロバイダの切り替えは不可。
  • 古い同期: --debug --timing-json、その後、直接プロバイダで--full-resyncを1回実行する。
  • 失敗したフェーズ/JUnitを、焦点を絞った再実行の前に読む。壊れたラッパー: 同じプロバイダでインストール済みCLIを使用して診断し、コンシューマの信頼できるパスを通じて更新する。
  • 所有するIDのみを停止すること。stopは--timing-jsonを取らない。

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.

関連スキル