一键导入
e2e-test
boiled-claw の e2e スモークテストを実行する。gateway の pytest / Docker / HTTP ヘルスチェックをまとめて確認し、すべて Pass した場合のみ「push OK」と報告する。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
boiled-claw の e2e スモークテストを実行する。gateway の pytest / Docker / HTTP ヘルスチェックをまとめて確認し、すべて Pass した場合のみ「push OK」と報告する。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | e2e-test |
| description | boiled-claw の e2e スモークテストを実行する。gateway の pytest / Docker / HTTP ヘルスチェックをまとめて確認し、すべて Pass した場合のみ「push OK」と報告する。 |
| disable-model-invocation | true |
boiled-claw の e2e スモークテストを実行するスキル。
以下をすべて実行し、最後に結果サマリを出力すること。
docker compose up -d --build 2>&1
docker compose logs --tail=30 で原因を調査する起動後、ヘルスチェックが通るまで待機する:
# 最大60秒待つ
for i in $(seq 1 12); do
STATUS=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:18789/health 2>/dev/null)
if [ "$STATUS" = "200" ]; then echo "Gateway ready"; break; fi
echo "Waiting... ($i/12)"
sleep 5
done
Gateway ready が表示されることdocker compose logs boiled-claw-gateway --tail=50 を確認して報告する.venv/bin/pytest tests/test_e2e.py -v -m e2e 2>&1
docker compose ps 2>&1
boiled-claw-gateway が Up (healthy) であることを確認するdocker compose logs boiled-claw-gateway --tail=30 でログを確認するcurl -s http://localhost:18789/health
{"status":"healthy"} が返ることを確認する実際に LLM にプロンプトを送って応答が返ることを確認する。
curl -s -X POST http://localhost:18789/agent/run \
-H 'Content-Type: application/json' \
-d '{"user_id":"e2e-skill","message":"一言で答えて: 1+1は?"}' 2>&1
"ok": true であること"response" に何らかのテキストが含まれること(空でないこと)"session_id" が返っていること# ステップ1: 名前を覚えさせる
curl -s -X POST http://localhost:18789/agent/run \
-H 'Content-Type: application/json' \
-d '{"user_id":"e2e-skill-sess","message":"私の名前はスキルテスト太郎です。覚えておいてください。"}' 2>&1
session_id を取得する# ステップ2: 同じ session_id で名前を聞き返す
curl -s -X POST http://localhost:18789/agent/run \
-H 'Content-Type: application/json' \
-d '{"user_id":"e2e-skill-sess","session_id":"<上で取得した session_id>","message":"さっき私が名乗った名前を教えて"}' 2>&1
"response" に「スキルテスト太郎」が含まれることcurl -s http://localhost:18789/sessions/e2e-skill 2>&1
"sessions" キーが存在することCLIのサブコマンド体系・エイリアス・フラグが正しく動作することを確認する。
python -m src.main --help 2>&1
chat, web, channels, bridge, status の5コマンドが表示されること--version, -v, --verbose オプションが表示されることpython -m src.main cli --help 2>&1
python -m src.main host-bridge --help 2>&1
python -m src.main desktop-bridge --help 2>&1
cli → chat のヘルプが表示されることhost-bridge → bridge host のヘルプが表示されることdesktop-bridge → bridge desktop のヘルプが表示されることNo such command エラーにならないことpython -m src.main bridge --help 2>&1
host, desktop のサブコマンドが表示されることpython -m src.main chat --help 2>&1
--model, --dry-run オプションが表示されることpython -m src.main chat --dry-run 2>&1
Config OK. Dry-run mode が表示されてエラーなく終了することpython -m src.main status 2>&1
GOOGLE_API_KEY= python -m src.main 2>&1
GOOGLE_API_KEY is not set のエラーメッセージが表示されること(トレースバックではないこと)最近追加された機能のユニットテストをまとめて実行する。
gateway 不要・Docker 不要で、ホスト上の .venv だけで動く。
.venv/bin/pytest tests/test_computer_tools.py -v 2>&1
tests/test_computer_evals.py が存在する場合はそちらも実行する:
.venv/bin/pytest tests/test_computer_evals.py -v 2>&1
.venv/bin/pytest tests/test_physical_ai_tools.py -v 2>&1
.venv/bin/pytest tests/test_self_improvement_tools.py -v 2>&1
.venv/bin/pytest tests/test_skills_runtime.py -v 2>&1
.venv/bin/pytest tests/test_agent.py -v 2>&1
computer_observe, computer_evaluate, computer_click, computer_fill, computer_trajectory_recentphysical_ai_submit_simulation, physical_ai_build_ros2_action, physical_ai_dispatch_ros2_actionself_improvement_prepare_canary, self_improvement_run_benchmarks, self_improvement_package_candidate, self_improvement_cleanup_canary.venv/bin/pytest -q -m 'not e2e' 2>&1
外部 AI CLI 連携スキルのロードとユーティリティの動作を確認する。
python3 -c "
import asyncio
from src.skills.runtime import ensure_skills_loaded
from src.skills.base import get_skill_registry
async def main():
await ensure_skills_loaded()
registry = get_skill_registry()
names = [m.name for m in registry.list_skills()]
expected = {'coding-agent', 'e2e-test', 'code-review', 'multi-llm-judge', 'auto-fix', 'computer-use'}
missing = expected - set(names)
if missing:
print(f'FAIL: missing skills: {missing}')
exit(1)
print(f'PASS: {len(names)} skills loaded')
asyncio.run(main())
" 2>&1
coding-agent, e2e-test, code-review, multi-llm-judge, auto-fix, computer-usepython3 skills/_utils/run_ai_cli.py --detect 2>&1
検出された各 CLI に対して、簡単なプロンプトで stdin 経由の応答を確認する:
python3 skills/_utils/run_ai_cli.py --cli claude --prompt "Say only: ok" --timeout 30 2>&1
python3 skills/_utils/run_ai_cli.py --cli codex --prompt "Say only: ok" --timeout 60 2>&1
python3 skills/_utils/run_ai_cli.py --cli gemini --prompt "Say only: ok" --timeout 120 2>&1
外部 CLI を実際に呼ばず、run_ai_cli.py の引数組み立てだけを検証する。
ネットワークや CLI の状態に依存しないため false negative が起きない:
python3 -c "
import sys, importlib.util
spec = importlib.util.spec_from_file_location('run_ai_cli', 'skills/_utils/run_ai_cli.py')
mod = importlib.util.module_from_spec(spec); spec.loader.exec_module(mod)
# claude: stdin, no prompt in argv
args, stdin = mod._build_args_and_input('claude', 'test', 'default', [], None, False)
assert args == ['claude', '-p'] and stdin == 'test'
# codex exec: stdin via '-'
args, stdin = mod._build_args_and_input('codex', 'test', 'default', [], None, False)
assert args == ['codex', 'exec', '-'] and stdin == 'test'
# codex review --base: prompt excluded (mutually exclusive)
args, stdin = mod._build_args_and_input('codex', 'ignored', 'review', [], 'main', False)
assert args == ['codex', 'review', '--base', 'main'] and stdin is None
# codex review --uncommitted: prompt excluded
args, stdin = mod._build_args_and_input('codex', '', 'review', [], None, True)
assert args == ['codex', 'review', '--uncommitted'] and stdin is None
# gemini: stdin
args, stdin = mod._build_args_and_input('gemini', 'test', 'default', [], None, False)
assert args == ['gemini'] and stdin == 'test'
print('PASS: all argv construction checks passed')
" 2>&1
以下の形式で報告すること:
## E2E 結果
| チェック | 結果 |
|---------|------|
| Docker 再起動 | OK / NG |
| pytest e2e (N tests) | PASS / FAIL |
| gateway container | OK / NG |
| HTTP /health | OK / NG |
| API 基本応答 | OK / NG |
| API セッション継続 | OK / NG |
| API セッション一覧 | OK / NG |
| CLI ヘルプ表示 | OK / NG |
| CLI レガシーエイリアス | OK / NG |
| CLI bridge サブコマンド | OK / NG |
| CLI chat フラグ | OK / NG |
| CLI dry-run | OK / NG |
| CLI status コマンド | OK / NG |
| CLI デフォルト動作 | OK / NG |
| Computer use ツール (N tests) | PASS / FAIL |
| Computer use evals (N tests) | PASS / FAIL / SKIP |
| Physical AI ツール (N tests) | PASS / FAIL |
| Self-improvement ツール (N tests) | PASS / FAIL |
| Skills runtime (N tests) | PASS / FAIL |
| Agent ツール登録 (N tests) | PASS / FAIL |
| 全ユニットテスト (non-e2e) | PASS / FAIL |
| AI スキルロード (6件) | OK / NG |
| CLI 検出ユーティリティ | OK / NG (N件検出) |
| Claude CLI 基本応答 | OK / NG / SKIP |
| Codex CLI 基本応答 | OK / NG / SKIP |
| Gemini CLI 基本応答 | OK / NG / SKIP |
| argv 構築テスト | OK / NG |
(失敗がある場合は詳細と対処法を記載)
(CLI 基本応答の SKIP は当該 CLI が未インストールの場合で、失敗とはみなさない)
(Computer use evals の SKIP は test_computer_evals.py が未マージの場合で、失敗とはみなさない)
すべて OK の場合のみ「push OK」と報告すること。
Run end-to-end smoke tests against the boiled-claw gateway from the Docker dev container.
見えているブラウザ UI を browser-first で扱い、単発は computer_*、長めの作業は computer_operator へつなぐ。
Use browser-first computer tools for visible UI tasks in the current browser, with escalation to computer_operator for longer multi-step work.
boiled-claw の新しいスキルを対話的に作成する。skills/ と .claude/skills/ の両方に SKILL.md を生成する。
git diff を外部 AI CLI(Claude Code / Codex / Gemini)に送ってレビューし、結果を集約・比較する。
Detect lint/test failures, send context to external AI CLIs for fixes, apply patches, and verify in a loop.