Imported from harukin110/cloud-test-agent (
AGENTS.md). Install upstream withnpx skills add harukin110/cloud-test-agent. Copyright stays with the author.
cloud-test-agent
GitHub リポジトリのソースコードを解析し、AI エージェントがテストシナリオを自律生成、 browser-use でブラウザを操作して実際にテストを実行し、動画・スクリーンショットを成果物として 取得・保存する AI テストエージェント。Google Cloud Japan AI Hackathon 提出物。
アーキテクチャ
GitHub ──(解析)──▶ Backend (FastAPI + Google ADK)
│
┌──────────┼───────────┐
▼ ▼ ▼
Vertex AI browser-use Cloud SQL
(Gemini) (実行/録画) (シナリオ/結果)
│ │
│ Cloud Storage (動画/スクショ)
▼
Frontend (Next.js / Cloud Run) ◀── ユーザー
ディレクトリ
backend/ FastAPI + Google ADK + browser-use(uv / Python 3.13)
frontend/ Next.js App Router(pnpm / TypeScript / Tailwind)
terraform/ GCP インフラ(Cloud Run / Cloud SQL / Storage / Artifact Registry)
docs/ 設計ドキュメント(docs/superpowers/specs/)
各ディレクトリの詳細な規約はそれぞれの AGENTS.md / README.md を参照。
技術スタック(バージョン固定)
| 領域 | 技術 |
|---|---|
| AIエージェント | Google ADK + Vertex AI (Gemini) |
| ブラウザ自動化 | browser-use(Playwright ベース) |
| Backend | FastAPI / uv / Python 3.13.11 |
| Frontend | Next.js 16 / React 19 / pnpm 11.10.0 / Node 24.18.0 |
| データ | Cloud SQL / PostgreSQL(メタデータ)/ Cloud Storage(成果物) |
| インフラ | Cloud Run ×2 / Terraform / リージョン asia-northeast1 |
| ツール管理 | mise / uv / pnpm |
開発コマンド(mise)
mise install # ツール(python/node/uv/pnpm)を導入
mise setup # 依存インストール(backend: uv / frontend: pnpm)
mise dev # backend + frontend を同時起動
mise dev:be # backend のみ(http://localhost:8080)
mise dev:fe # frontend のみ(http://localhost:3000)
mise check # 全体の静的検査(backend lint+test / frontend lint+format)
mise build:be # backend の Docker イメージビルド
mise deploy # Cloud Run へデプロイ(要 GCP_PROJECT_ID)
mise tasks で全タスクを一覧できる。
ローカルの GCP エミュレータ
docker compose up -d # GCS エミュレータを起動
- PostgreSQL(
docker compose up -d db, localhost:5432) - GCS エミュレータ (fake-gcs-server):
localhost:4443
規約の要点
- Backend:
app/をレイヤ分割(api/schemas/agents(orchestrator 含む) /services/repositories/models/core)。lint/format は ruff。 設定は pydantic-settings(環境変数)。GCP クライアントは遅延初期化(app/core/clients.py)。 - Frontend: 詳細は
frontend/AGENTS.md。typeを使用(interface禁止)、ファイルは kebab-case、コンポーネントは PascalCase。lint/format は oxlint / oxfmt(pnpm check)。 - コミット: 論理単位で分割。ロックファイル(
uv.lock/pnpm-lock.yaml)は追跡する。
必須ルール(ハッカソン)
- Google Cloud アプリ実行プロダクト(Cloud Run 等)を利用すること。
- Google Cloud AI 技術(Vertex AI / Gemini / ADK)を利用すること。
- AI エージェントが価値の中心であり、自律的に振る舞うこと。