3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MCPサーバーなしでBob IDEの複数処理を一括実行 - カスタムモード活用ガイド

Posted at

MCPサーバーなしでBob IDEの複数処理を一括実行 - カスタムモード活用ガイド

📝 TL;DR(要約)

この記事では、Bob IDEのカスタムモード機能を使って複数の処理を順次実行する方法を実践的に解説します。

この記事で分かること

  • Bob IDEのカスタムモードで複数処理を一括実行する方法
  • MCPサーバー不要、プロジェクト内で完結する実装
  • 実際に動くコードとその使い方

実装のポイント

  • .bobmodesファイルでカスタムモードを定義
  • ✅ スラッシュコマンドで処理を起動
  • ✅ モード固有指示で自律実行を実現
  • ✅ 5つのステップを順次実行してCI/CDパイプラインを構築

MCPサーバー型との違い

項目 MCPサーバー型 カスタムモード型
セットアップ Node.js + TypeScript マークダウンファイルのみ
実装場所 外部サーバー プロジェクト内(.bob/
依存関係 MCP SDK必要 不要
配布方法 npm公開 Gitリポジトリ
学習コスト 高(TypeScript必須) 低(マークダウンのみ)

動作環境

  • Bob IDE(VS Code拡張機能)
  • マークダウンファイルのみ(追加の依存関係なし)

所要時間

  • セットアップ: 約10分
  • 動作確認: 約3分

1. カスタムモードとは

1.1 Bob IDEのカスタムモード機能

カスタムモードは、Bob IDEに独自の動作モードを追加できる機能です。プロジェクトのルートディレクトリに.bobmodesファイルを配置することで、特定のタスクに特化したモードを定義できます。

1.2 MCPサーバー型との比較

MCPサーバー型の特徴

メリット:

  • ✅ 複数のプロジェクトで再利用可能
  • ✅ npm公開で広く配布できる
  • ✅ 複雑なロジックを実装しやすい

デメリット:

  • ❌ Node.js + TypeScriptの知識が必要
  • ❌ ビルドとデプロイの手間
  • ❌ MCP設定ファイルの編集が必要

カスタムモード型の特徴

メリット:

  • ✅ マークダウンファイルだけで実装可能
  • ✅ プロジェクト内で完結(外部依存なし)
  • ✅ Gitで簡単に共有できる
  • ✅ 学習コストが低い

デメリット:

  • ❌ プロジェクトごとに設定が必要
  • ❌ 複雑なロジックは実装しにくい
  • ❌ 外部APIとの連携は制限される

1.3 使い分けのポイント

シーン 推奨 理由
チーム内での共有 カスタムモード Gitで簡単に共有
複数プロジェクトで使用 MCPサーバー 一度の実装で再利用
簡単なワークフロー カスタムモード 実装が簡単
複雑なロジック MCPサーバー TypeScriptで実装
外部API連携 MCPサーバー 柔軟な実装が可能

2. 複数処理を一括実行する仕組み

2.1 自律実行の原則

カスタムモードで複数処理を一括実行するには、自律実行の原則を定義します。

## 自律実行の原則

- すべてのステップを自動的に実行
- 各ステップの結果を次のステップに渡す
- エラー時のみユーザーに確認を求める
- 成功時は次のステップに自動進行

この原則をモード固有指示(.bob/rules-{mode-slug}/)に記載することで、Bob IDEのLLMが自動的に順次実行します。

2.2 処理順序の定義

処理順序は以下の3箇所で定義します:

1. .bobmodesファイル(roleDefinition)

roleDefinition: |
  処理順序:
  1. ステップ5: execute_commandで環境確認
  2. ステップ6: read_fileでパターン読み込み→LLMが分析・選択
  3. ステップ7: read_fileでテンプレート読み込み→write_to_fileでIaC生成
  4. ステップ8: execute_commandでデプロイ
  5. ステップ9: execute_commandまたはbrowser_actionで稼働確認

2. スラッシュコマンド(.bob/commands/pipeline.md

以下のステップを順次実行してください:

1. ステップ5: 実行環境の確認
2. ステップ6: 黄金パターンの選択
3. ステップ7: IaC自動作成
4. ステップ8: デプロイ実行
5. ステップ9: パイプラインの稼働確認

3. モード固有指示(.bob/rules-autonomous-pipeline-deploy/00-autonomous-execution.md

### 実行ルール

1. **自動進行**: 各ステップが成功したら、ユーザーの追加指示を待たずに次のステップに進む
2. **結果の保持**: 各ステップの結果を保持し、次のステップで使用する
3. **エラー時の対応**: エラー時のみユーザーに確認を求める
4. **完了報告**: すべてのステップが完了したら、詳細な完了報告を行う

2.3 今回実装する5つのステップ

ステップ 処理内容 使用ツール
5 実行環境の確認 execute_command
6 黄金パターンの選択 list_files, read_file
7 IaCコードの生成 read_file, write_to_file
8 デプロイの実行 execute_command
9 パイプラインの稼働確認 execute_command, browser_action

3. 実装手順(コピペで動く)

3.1 プロジェクト構造の作成

# プロジェクトディレクトリを作成
mkdir my-auto-deploy-project
cd my-auto-deploy-project

# 必要なディレクトリを作成
mkdir -p .bob/commands
mkdir -p .bob/rules-autonomous-pipeline-deploy
mkdir -p .bob/assets/patterns
mkdir -p .bob/assets/templates/terraform
mkdir -p .bob/assets/examples

3.2 .bobmodesファイルの作成

プロジェクトルートに.bobmodesファイルを作成します。

customModes:
  - slug: autonomous-pipeline-deploy
    name: 🚀 自律型パイプラインデプロイ
    
    roleDefinition: |
      あなたは自律型パイプラインデプロイの専門家です。
      
      重要: ユーザーから指示されたステップをすべて自動的に実行してください。
      各ステップの完了後、ユーザーの追加指示を待たずに次のステップに進んでください。
      
      アセットの場所:
      - 黄金パターン: .bob/assets/patterns/
      - IaCテンプレート: .bob/assets/templates/terraform/
      - 過去事例: .bob/assets/examples/
      
      処理順序:
      1. ステップ5: execute_commandで環境確認
      2. ステップ6: read_fileでパターン読み込み→LLMが分析・選択
      3. ステップ7: read_fileでテンプレート読み込み→write_to_fileでIaC生成
      4. ステップ8: execute_commandでデプロイ
      5. ステップ9: execute_commandまたはbrowser_actionで稼働確認
    
    customInstructions: |
      ## 自律実行の原則
      - すべてのステップを自動的に実行
      - 各ステップの結果を次のステップに渡す
      - エラー時のみユーザーに確認を求める
      - 成功時は次のステップに自動進行
      
      ## 実行フロー
      1. ステップ5を実行 → 結果を保存
      2. ステップ6を実行 → 結果を保存
      3. ステップ7を実行 → 結果を保存(Bob IDEで直接ファイル作成)
      4. ステップ8を実行 → 結果を保存
      5. ステップ9を実行 → 完了報告
      
      ## アセットの活用
      
      ### ステップ6: 黄金パターンの選択
      1. list_filesで.bob/assets/patterns/内のファイルを確認
      2. read_fileで全パターンを読み込む
      3. 要件定義書と各パターンを比較分析
      4. 最適なパターンを選択し、理由を説明
      
      ### ステップ7: IaC自動作成
      1. 選択したパターンに対応するテンプレートを特定
      2. read_fileでテンプレートを読み込む
      3. 要件に応じてカスタマイズ
      4. write_to_fileで./infrastructure/ディレクトリに保存
      
      ### 過去事例の参照(オプション)
      必要に応じて.bob/assets/examples/から関連する事例を参照してください。
    
    groups:
      - read
      - edit
      - command

3.3 スラッシュコマンドの作成

.bob/commands/pipeline.mdファイルを作成します。

---
description: CI/CDパイプラインを自動構築してデプロイ
argument-hint: <requirements-file>
---

/mode autonomous-pipeline-deploy

要件定義書: $1

以下のステップを順次実行してください:

1. ステップ5: 実行環境の確認
2. ステップ6: 黄金パターンの選択
3. ステップ7: IaC自動作成(Bob IDEで直接ファイル作成)
4. ステップ8: デプロイ実行
5. ステップ9: パイプラインの稼働確認

各ステップが完了したら、次のステップに自動的に進んでください。
ユーザーの追加指示を待たずに、すべてのステップを完了させてください。

3.4 モード固有指示の作成

3.4.1 自律実行の原則(00-autonomous-execution.md)

.bob/rules-autonomous-pipeline-deploy/00-autonomous-execution.mdを作成します。

# 自律実行の原則

## 重要: 一括実行モード

このモードでは、ユーザーから指示されたすべてのステップを**自動的に順次実行**してください。

### 実行ルール

1. **自動進行**: 各ステップが成功したら、ユーザーの追加指示を待たずに次のステップに進む
2. **結果の保持**: 各ステップの結果を保持し、次のステップで使用する
3. **エラー時の対応**: エラー時のみユーザーに確認を求める
4. **完了報告**: すべてのステップが完了したら、詳細な完了報告を行う

### 実行例

ユーザー: /pipeline requirements.md

あなたの動作:

  1. ステップ5を実行 → 成功 → 結果を保存
  2. ステップ6を実行 → 成功 → 結果を保存
  3. ステップ7を実行 → 成功 → 結果を保存(Bob IDEで直接ファイル作成)
  4. ステップ8を実行 → 成功 → 結果を保存
  5. ステップ9を実行 → 成功 → 完了報告

ユーザーの追加指示は不要


### 禁止事項

- ❌ 各ステップ後にユーザーに「次に進みますか?」と聞かない
- ❌ 各ステップ後に停止しない
- ❌ ユーザーの確認を待たない(エラー時を除く)

### 許可事項

- ✅ すべてのステップを自動的に実行
- ✅ 各ステップの結果を次のステップに渡す
- ✅ エラー時のみユーザーに確認を求める

3.4.2 アセットの場所(01-asset-locations.md)

.bob/rules-autonomous-pipeline-deploy/01-asset-locations.mdを作成します。

# アセットの場所

## プロジェクト内アセット

このモードでは、以下の場所にアセットを配置します:

### 1. 黄金パターン

**場所**: `.bob/assets/patterns/`

**ファイル形式**: JSON

**例**: 
- `aws-ecs-fargate-web.json`
- `aws-lambda-api.json`
- `azure-app-service-web.json`

### 2. IaCテンプレート

**場所**: `.bob/assets/templates/terraform/`

**ディレクトリ構造**:

.bob/assets/templates/terraform/
├── aws-ecs-fargate-web/
│ ├── main.tf
│ ├── variables.tf
│ └── outputs.tf
└── aws-lambda-api/
├── main.tf
├── variables.tf
└── outputs.tf


### 3. 過去事例

**場所**: `.bob/assets/examples/`

**ファイル形式**: Markdown

**例**:
- `example-001-web-app.md`
- `example-002-api-service.md`

## アセットの読み込み方法

### ステップ6: パターン選択時

1. `list_files`ツールで`.bob/assets/patterns/`内のファイルを確認
2. `read_file`ツールで各パターンファイルを読み込む
3. 要件定義書と比較して最適なパターンを選択

### ステップ7: IaC生成時

1. 選択したパターンに対応するテンプレートディレクトリを特定
2. `read_file`ツールでテンプレートファイルを読み込む
3. 要件に応じてカスタマイズ
4. `write_to_file`ツールで`./infrastructure/`に保存

3.4.3 ステップ実装(02-step-implementations.md)

.bob/rules-autonomous-pipeline-deploy/02-step-implementations.mdを作成します。

# ステップ実装の詳細

## ステップ5: 実行環境の確認

**目的**: クラウド環境の認証情報と利用可能なサービスを確認

**実装方法**:
```bash
echo "===== ステップ5: 実行環境の確認 ====="
echo "✅ 環境確認を実行しました"
echo "- クラウド: AWS"
echo "- リージョン: us-east-1"
echo "- 認証: 有効"
echo ""

使用ツール: execute_command


ステップ6: 黄金パターンの選択

目的: 要件に最適なインフラパターンを選択

実装方法:

echo "===== ステップ6: 黄金パターンの選択 ====="
echo "✅ パターン選択を実行しました"
echo "- 選択パターン: ECS Fargate Web Application"
echo "- 信頼度: 95%"
echo "- 推定コスト: $200-1000/月"
echo ""

使用ツール: list_files, read_file (アセット読み込み用)


ステップ7: IaC自動作成

目的: 選択したパターンに基づいてTerraformコードを生成

実装方法:

echo "===== ステップ7: IaC自動作成 ====="
echo "✅ IaC生成を実行しました"
echo "- 生成ファイル: ./infrastructure/main.tf"
echo "- 生成ファイル: ./infrastructure/variables.tf"
echo "- 生成ファイル: ./infrastructure/outputs.tf"
echo ""

使用ツール: read_file (テンプレート読み込み), write_to_file (コード生成)


ステップ8: デプロイ実行

目的: Terraformを使用してインフラをデプロイ

実装方法:

echo "===== ステップ8: デプロイ実行 ====="
echo "✅ デプロイを実行しました"
echo "- 実行時間: 8分32秒"
echo "- リソース数: 23"
echo "- エンドポイント: https://my-app-alb-1234567890.us-east-1.elb.amazonaws.com"
echo ""

使用ツール: execute_command


ステップ9: パイプラインの稼働確認

目的: デプロイされたパイプラインの正常性を確認

実装方法:

echo "===== ステップ9: パイプラインの稼働確認 ====="
echo "✅ 稼働確認を実行しました"
echo "- ステータス: 正常稼働"
echo "- 応答時間: 150ms"
echo "- ヘルスチェック: OK"
echo ""

使用ツール: execute_command または browser_action


テスト実装の特徴

現在の実装はテスト用であり、以下の簡略化が行われています:

  • 各ステップはechoコマンドでステップ名を出力するだけ
  • 実際のクラウドAPIやTerraformは実行しない
  • ダミーデータを使用して結果を表示

本番実装への移行

本番環境では、以下のように実装を拡張します:

  • ステップ5: 実際のクラウドCLI(aws, az, gcloud)を実行
  • ステップ6: アセットファイルを読み込み、LLMで分析
  • ステップ7: テンプレートを読み込み、カスタマイズして保存
  • ステップ8: 実際のTerraformコマンドを実行
  • ステップ9: 実際のヘルスチェックを実行

### 3.5 テスト用要件定義書の作成

プロジェクトルートに`requirements.md`ファイルを作成します。

```markdown
# 要件定義書(テスト用)

## プロジェクト概要

- **プロジェクト名**: テストアプリケーション
- **目的**: カスタムモードとスラッシュコマンドの動作確認

## アプリケーション要件

- **種別**: Webアプリケーション
- **言語**: Python
- **フレームワーク**: Django
- **データベース**: PostgreSQL
- **予想トラフィック**: Medium

## インフラ要件

- **クラウドプロバイダー**: AWS
- **リージョン**: us-east-1
- **スケーリング**: Auto Scaling
- **可用性**: High Availability

## 期待される動作

このファイルを`/pipeline requirements.md`コマンドで指定すると、以下のステップが自動的に順次実行されます:

1. ステップ5: 実行環境の確認
2. ステップ6: 黄金パターンの選択
3. ステップ7: IaC自動作成
4. ステップ8: デプロイ実行
5. ステップ9: パイプラインの稼働確認

各ステップは名前を標準出力し、成功メッセージを表示します。

3.6 最終的なディレクトリ構造

my-auto-deploy-project/
├── .bobmodes                                    # カスタムモード設定
├── requirements.md                              # テスト用要件定義書
└── .bob/
    ├── commands/
    │   └── pipeline.md                          # /pipelineコマンド
    ├── rules-autonomous-pipeline-deploy/
    │   ├── 00-autonomous-execution.md           # 自律実行の原則
    │   ├── 01-asset-locations.md                # アセットの場所
    │   └── 02-step-implementations.md           # ステップ実装
    └── assets/
        ├── patterns/                            # 黄金パターン(空)
        ├── templates/terraform/                 # IaCテンプレート(空)
        └── examples/                            # 過去事例(空)

4. Bob IDEでの使用方法

4.1 Bob IDEの再起動

カスタムモードを有効化するため、VS Codeを再起動します。

  • Command Palette (Cmd+Shift+P / Ctrl+Shift+P) > "Reload Window"

4.2 カスタムモードの確認

Bob IDEのチャットを開いて、モード選択ボタンをクリックします。「🚀 自律型パイプラインデプロイ」が表示されることを確認してください。

4.3 スラッシュコマンドの実行

Bob IDEのチャットで以下のコマンドを入力します:

/pipeline requirements.md

4.4 実行結果の確認

コマンドを実行すると、以下のように5つのステップが自動的に順次実行されます:

===== ステップ5: 実行環境の確認 =====
✅ 環境確認を実行しました
- クラウド: AWS
- リージョン: us-east-1
- 認証: 有効

===== ステップ6: 黄金パターンの選択 =====
✅ パターン選択を実行しました
- 選択パターン: ECS Fargate Web Application
- 信頼度: 95%
- 推定コスト: $200-1000/月

===== ステップ7: IaC自動作成 =====
✅ IaC生成を実行しました
- 生成ファイル: ./infrastructure/main.tf
- 生成ファイル: ./infrastructure/variables.tf
- 生成ファイル: ./infrastructure/outputs.tf

===== ステップ8: デプロイ実行 =====
✅ デプロイを実行しました
- 実行時間: 8分32秒
- リソース数: 23
- エンドポイント: https://my-app-alb-1234567890.us-east-1.elb.amazonaws.com

===== ステップ9: パイプラインの稼働確認 =====
✅ 稼働確認を実行しました
- ステータス: 正常稼働
- 応答時間: 150ms
- ヘルスチェック: OK

5. 実際の使用例

5.1 実行フロー

5.2 各ステップの詳細

ステップ5: 実行環境の確認

実行内容:

  • クラウドプロバイダーの認証情報を確認
  • 利用可能なサービスをリストアップ
  • リージョン設定を確認

出力例:
image.png

ステップ6: 黄金パターンの選択

実行内容:

  • 要件定義書を分析
  • 利用可能なパターンを比較
  • 最適なパターンを選択
  • 選択理由と信頼度を提示

出力例:
image.png

ステップ7: IaC自動作成

実行内容:

  • 選択したパターンのテンプレートを読み込み
  • 要件に応じてカスタマイズ
  • Terraformコードを生成
  • ./infrastructure/ディレクトリに保存

出力例:
image.png

ステップ8: デプロイ実行

実行内容:

  • Terraformの初期化(terraform init
  • プランの作成(terraform plan
  • インフラのデプロイ(terraform apply
  • デプロイ結果の確認

出力例:
image.png

ステップ9: パイプラインの稼働確認

実行内容:

  • デプロイされたエンドポイントにアクセス
  • ヘルスチェックを実行
  • 応答時間を測定
  • 正常性を確認

出力例:
image.png

完了報告

以下のように完了報告とともに実行結果が表示されます。
image.png


6. MCPサーバー型との詳細比較

6.1 実装の違い

MCPサーバー型

ファイル構成:

auto-deploy-mcp-server/
├── package.json
├── tsconfig.json
└── src/
    └── index.ts (約400行のTypeScriptコード)

実装例:

server.setRequestHandler(ListToolsRequestSchema, async () => {
  return {
    tools: [
      {
        name: "check_environment",
        description: "【ステップ5】デプロイの最初のステップ...",
        inputSchema: { /* ... */ }
      },
      // 他のツール定義...
    ]
  };
});

カスタムモード型

ファイル構成:

my-auto-deploy-project/
├── .bobmodes (約60行のYAML)
└── .bob/
    ├── commands/pipeline.md (約20行)
    └── rules-autonomous-pipeline-deploy/
        ├── 00-autonomous-execution.md (約40行)
        ├── 01-asset-locations.md (約60行)
        └── 02-step-implementations.md (約100行)

実装例:

customModes:
  - slug: autonomous-pipeline-deploy
    name: 🚀 自律型パイプラインデプロイ
    roleDefinition: |
      処理順序:
      1. ステップ5: execute_commandで環境確認
      2. ステップ6: read_fileでパターン読み込み...

6.2 セットアップの違い

項目 MCPサーバー型 カスタムモード型
必要な知識 TypeScript, Node.js, MCP SDK マークダウン
依存関係 @modelcontextprotocol/sdk, zod なし
ビルド npm run buildが必要 不要
設定ファイル mcp_settings.jsonを編集 不要
配布方法 npm公開またはGit Git

6.3 使い分けのガイドライン

MCPサーバー型を選ぶべきケース

  1. 複数のプロジェクトで使用する場合

    • 一度実装すれば、どのプロジェクトでも使用可能
    • npm公開で広く配布できる
  2. 複雑なロジックが必要な場合

    • TypeScriptで柔軟に実装できる
    • 外部APIとの連携が容易
  3. チーム外にも公開したい場合

    • npm公開で誰でも使用可能
    • コミュニティで共有しやすい

カスタムモード型を選ぶべきケース

  1. チーム内での共有が目的の場合

    • Gitリポジトリで簡単に共有
    • プロジェクトと一緒に管理できる
  2. シンプルなワークフローの場合

    • マークダウンだけで実装可能
    • 学習コストが低い
  3. プロジェクト固有の処理の場合

    • プロジェクト内で完結
    • 外部依存がない

7. 参考資料

7.1 公式ドキュメント

7.2 関連記事

7.3 コミュニティ


まとめ

この記事では、Bob IDEのカスタムモード機能を使って複数の処理を順次実行する方法を実践的に解説しました。

ポイント

  1. ✅ マークダウンファイルだけで実装可能(TypeScript不要)
  2. ✅ プロジェクト内で完結(外部依存なし)
  3. ✅ Gitで簡単に共有できる
  4. ✅ 自律実行の原則で複数ステップを自動実行

MCPサーバー型との使い分け

  • チーム内共有: カスタムモード型
  • 複数プロジェクト: MCPサーバー型
  • シンプルなワークフロー: カスタムモード型
  • 複雑なロジック: MCPサーバー型

次のステップ

  • 実際のクラウドAPIと連携してみる
  • アセットファイル(パターン、テンプレート)を追加する
  • 本番環境向けに実装を拡張する

ぜひ、この記事を参考にBob IDEのカスタムモードを試してみてください!

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?