OpenClaw v2026.2 対応 |
coding-agent、git-workflows、test-runnerスキルのインストールが必要です。プロジェクトコードリポジトリへのアクセス権限が必要です。
TL;DR: コードレビュー:Agent が PR の変更を分析してレビューレポートを生成。自動テスト:"test-runner": {"frameworks": ["jest", "vitest"]}。CI/CD 連携:Webhook で GitHub/GitLab イベントを受信。マルチプロジェクト管理:"projects": {"frontend": {...}, "backend": {...}}。コアコマンド:openclaw agent --message "この PR をレビューして"。
実践目標
以下を実現する AI プログラミングアシスタントを構築します:
- コードレビューの自動化
- テストの実行と結果レポート
- コードドキュメントの生成
- CI/CD パイプラインの連携
- マルチプロジェクトのコンテキスト切り替え
必要なスキルのインストール
# プログラミング関連スキル
openclaw skill install coding-agent
openclaw skill install debug-pro
openclaw skill install git-workflows
openclaw skill install docker-essentials
# テストスキル
openclaw skill install test-runner
コードレビュー自動化
コードレビューの設定
---
name: code-review-assistant
version: 1.0.0
description: Automated code review with OpenClaw
triggers:
- code review
- コードレビュー
- review
- PR review
---
# Code Review Assistant
プルリクエストのコードレビューを自動化します。
## 機能
- コード変更のレビュー
- 一般的な問題のチェック
- 改善提案
- レビューコメントの生成
## レビューチェックリスト
1. **コード品質**
- 命名規則
- コード構造
- エラーハンドリング
2. **セキュリティ**
- SQL インジェクション
- XSS 脆弱性
- シークレットの露出
3. **パフォーマンス**
- N+1 クエリ
- メモリリーク
- 非効率なアルゴリズム
4. **ベストプラクティス**
- DRY 原則
- SOLID 原則
- デザインパターン
コードレビューシナリオ
ユーザー:この PR をレビューして
Agent:承知しました。PR #123 をレビューします...
[PR 情報を取得]
[コード変更を分析]
[潜在的な問題をチェック]
## PR #123 レビューレポート
### 概要
- ブランチ: feature/user-search
- 変更: +156 -23
- ファイル: 8 個
### 発見された問題
**重大** (1):
- 🚨 `auth.js:45` - パスワード平文保存のリスク
**警告** (3):
- ⚠️ `search.js:23` - 潜在的な SQL インジェクション
- ⚠️ `user.js:78` - 未処理の Promise
- ⚠️ `utils.js:12` - 非推奨 API の使用
**提案** (5):
- 💡 ユニットテストの追加を検討
- 💡 マジックナンバーを定数に置き換え
- 💡 エラーバウンダリの追加を推奨
- 💡 共通メソッドの抽出を検討
- 💡 型アノテーションの追加を推奨
### コードの良い点
- ✅ 適切な関数命名
- ✅ 合理的なモジュール分割
- ✅ 適切なコメント
レビューコメントを生成しますか?
自動テスト
テスト実行設定
{
"skills": {
"test-runner": {
"frameworks": ["jest", "vitest", "pytest"],
"coverage": {
"enabled": true,
"threshold": 80
},
"reporting": {
"format": "markdown",
"output": "test-report.md"
}
}
}
}
テストシナリオ
ユーザー:テストを実行して結果をレポートして
Agent:テストを実行しています...
[テストコマンドを実行]
[テスト結果を収集]
[カバレッジを分析]
## テストレポート
### テスト結果
- 合計: 45 テスト
- 成功: 42 ✅
- 失敗: 2 ❌
- スキップ: 1 ⏭️
### 失敗したテスト
**1. UserSearch.test.js**
AssertionError: expected [] to equal [{id: 1, name: ’test’}]
提案: データベース接続または mock データを確認
**2. Auth.test.js**
Timeout: Async callback not invoked within 5000ms
提案: タイムアウト時間を延長するか、非同期ロジックを確認
### カバレッジ
| ファイル | 文 | 分岐 | 関数 | 行 |
|-----|-----|-----|-----|-----|
| auth.js | 85% | 78% | 90% | 85% |
| search.js | 72% | 65% | 80% | 70% |
| user.js | 90% | 85% | 95% | 90% |
| **合計** | **82%** | **76%** | **88%** | **82%** |
失敗したテストを修正しますか?
CI/CD 連携
GitHub Actions 連携
# .github/workflows/openclaw-review.yml
name: OpenClaw Review
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup OpenClaw
run: npm install -g openclaw@latest
- name: Run Review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
openclaw agent --message "Review PR #${{ github.event.pull_request.number }}" \
--output review-comment.md
- name: Post Comment
uses: actions/github-script@v6
with:
script: |
const fs = require('fs');
const comment = fs.readFileSync('review-comment.md', 'utf8');
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: comment
});
自動デプロイ
ユーザー:staging にデプロイして
Agent:staging 環境にデプロイしています...
[最新コードを取得]
[テストを実行]
[プロジェクトをビルド]
[サーバーにデプロイ]
## デプロイレポート
### デプロイ情報
- 環境: staging
- ブランチ: main
- コミット: abc1234
- 時刻: 2026-02-26 15:30
### デプロイ手順
1. ✅ コード取得
2. ✅ 依存関係インストール
3. ✅ テスト実行 (45/45 成功)
4. ✅ プロジェクトビルド
5. ✅ サーバーへデプロイ
### ヘルスチェック
- API: ✅ 正常
- データベース: ✅ 接続正常
- Redis: ✅ 接続正常
### アクセス URL
- URL: https://staging.example.com
- API: https://api-staging.example.com
デプロイ成功!
マルチプロジェクト管理
プロジェクト設定
{
"projects": {
"frontend": {
"path": "~/projects/frontend",
"skills": ["coding-agent", "test-runner"],
"context": "AGENTS.md"
},
"backend": {
"path": "~/projects/backend",
"skills": ["coding-agent", "docker-essentials"],
"context": "AGENTS.md"
},
"mobile": {
"path": "~/projects/mobile",
"skills": ["coding-agent"],
"context": "AGENTS.md"
}
}
}
プロジェクト切り替え
ユーザー:backend プロジェクトに切り替えて
Agent:backend プロジェクトに切り替えました。
現在のプロジェクト情報:
- 名前: backend
- パス: ~/projects/backend
- 技術: Python/FastAPI
- 直近のコミット: ユーザー認証を追加
何をお手伝いしましょうか?
コード生成
ボイラープレートコードの生成
ユーザー:User モデルの CRUD API を作成して
Agent:User モデルの CRUD API を作成します...
[既存のコード構造を分析]
[コードファイルを生成]
以下のファイルを生成しました:
**1. models/user.py**
```python
from pydantic import BaseModel
from datetime import datetime
class User(BaseModel):
id: int
name: str
email: str
created_at: datetime
updated_at: datetime
class UserCreate(BaseModel):
name: str
email: str
class UserUpdate(BaseModel):
name: str | None = None
email: str | None = None
2. routers/users.py
from fastapi import APIRouter, HTTPException
from models.user import User, UserCreate, UserUpdate
router = APIRouter(prefix="/users", tags=["users"])
@router.get("/", response_model=list[User])
async def list_users(): ...
@router.get("/{user_id}", response_model=User)
async def get_user(user_id: int): ...
@router.post("/", response_model=User)
async def create_user(user: UserCreate): ...
@router.put("/{user_id}", response_model=User)
async def update_user(user_id: int, user: UserUpdate): ...
@router.delete("/{user_id}")
async def delete_user(user_id: int): ...
3. tests/test_users.py
from fastapi.testclient import TestClient
def test_list_users(): ...
def test_create_user(): ...
def test_update_user(): ...
def test_delete_user(): ...
テストを実行して検証しますか?
## ドキュメント生成
### API ドキュメント
ユーザー:この API のドキュメントを生成して
Agent:API エンドポイントを分析しています…
[ルートファイルをスキャン] [API 情報を抽出] [ドキュメントを生成]
API ドキュメント
ユーザーモジュール
GET /users
ユーザー一覧を取得
パラメータ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
| page | int | 否 | ページ番号 |
| limit | int | 否 | 1ページあたりの件数 |
レスポンス
{
"data": [User],
"total": int,
"page": int,
"limit": int
}
POST /users
ユーザーを作成
リクエストボディ
{
"name": "string",
"email": "string"
}
レスポンス
{
"id": 1,
"name": "string",
"email": "string",
"created_at": "2026-02-26T00:00:00Z",
"updated_at": "2026-02-26T00:00:00Z"
}
docs/api.md に保存しますか?
## トラブルシューティング
### CI/CD の問題
```bash
# CI/CD ステータスを確認
openclaw ci status
# CI/CD ログを表示
openclaw ci logs --last
# 失敗したジョブを再実行
openclaw ci retry
コードの問題
# コード問題を分析
openclaw analyze --project backend
# 修正提案を生成
openclaw suggest --file auth.js
まとめ
OpenClaw でプログラミングアシスタントを構築するポイント:
- コードレビュー:PR レビューの自動化
- テスト実行:自動テストとレポート
- CI/CD 連携:自動デプロイフロー
- マルチプロジェクト管理:コンテキストの迅速な切り替え
- コード生成:ボイラープレートコードの生成
- ドキュメント生成:API ドキュメントの自動生成
更新履歴:
- 2026-02-26:初版公開
シリーズナビゲーション:
- ← 前の記事:実践:オフィス自動化アシスタントの構築
- → 次の記事:実践:スマートホーム制御センターの構築