これは、APIテストおよびAPIライフサイクル管理のためのコマンドラインツールであるApidog CLIをApidogがどのように開発したかを共有する10部構成のシリーズです。順番に読むことも、興味のある投稿に直接ジャンプすることもできます:
| タイトル | 焦点 | |
|---|---|---|
| 1 | 当社は126のMCPツールを構築しました。しかし、それはAgentにとって最善のソリューションではありませんでした | 問題の発見 |
| 2 | なぜ当社は全く新しいApidog CLIを開発したのか | アーキテクチャ開発 |
| 3 | 黄金律: CLIは事実を生成し、モデルは事実に基づいて行動する | コア哲学 |
| 4 | agentHints: CLIにAgentとの会話を教える |
構造化出力 |
| 5 | SKILL: 運用経験をコードとして出荷する | 運用経験 |
| 6 | 数字は嘘をつかない: ツール呼び出しが30%減、トークンが25%減 | 定量的結果 |
| 7 | PRDからテストループまで: Apidog CLIを使った完全なAgentワークフロー | 実践チュートリアル |
| 8 | なぜCI/CDの互換性がAgentツールにとって不可欠なのか | DevOpsの視点 |
| 9 | AIブランチ: AI Agentによるより安全なプロジェクト変更 | セキュリティレイヤー |
| 10 | Spec-Firstは昨日。Skill-Firstへようこそ。 | ビジョンと未来 |
Agentがプロジェクトリソースを変更する場合、安全性とレビューの可能性が重要です。AIブランチは分離された編集環境を提供し、人間が確認した後でのみ変更がターゲットブランチに取り込まれます。
セキュリティの課題
AI AgentがAPI開発とテストに参加する場合、CLIコマンドを介してプロジェクトリソースを作成、更新、削除できます。
この力にはリスクが伴います。
| リスク | 起こりうる事態 |
|---|---|
| 予測不能な出力 | Agentが予期しないコンテンツを書き込む |
| フィールドエラー | 誤ったアサーション、不足しているパラメータ |
| スコープクリープ | Agentがタスクを超えてリソースを変更する |
| レビュー履歴なし | 変更が直接メインブランチに現れる |
| チームの混乱 | 共有コラボレーションブランチが突然変更される |
メインブランチを危険にさらすことなく、Agentに実際のプロジェクトで作業させるにはどうすればよいでしょうか?
AIブランチ:安全層
AIブランチは、外部AIおよびCLI操作のために特別に設計された特殊な種類のスプリントブランチです。

重要なコンセプト:
Apidog CLIから開始されるすべての編集操作は、デフォルトでAI / AI Agentによって開始されたものとして扱われます。
AIブランチは、AI Agentに分離された編集ブランチを提供します。変更は、人間がレビューしてマージするまでAIブランチに残ります。
AgentがCLI経由で変更を行う
↓
変更はAIブランチに保存される(分離)
↓
ユーザーが差分をレビューする
↓
ユーザーがリソースのスコープを確認する
↓
ターゲットブランチにマージする(直接またはマージリクエスト)承認されるまで、メインブランチは変更されません。
AIブランチが必要な理由
AIによって開始される編集は予測できない場合があります。Apidog CLIは、エンドポイント、スキーマ、テストシナリオ、テストスイートなど、幅広い編集機能を提供します。
AIブランチは、これらのリスクの高いAIが開始する編集操作のために設計されています。
AI Agentが制御された範囲内でプロジェクトリソースを編集できるようにします。
| AIブランチなし | AIブランチあり |
|---|---|
| Agentが直接メインに書き込む | Agentが分離されたブランチに書き込む |
| 変更がすぐに現れる | 変更はレビューを待つ |
| セーフティネットなし | 人間の確認が必要 |
| 意図しない変更のリスク | スコープは特定のリソースに限定される |
AIブランチとは?
AIブランチは、特定の特性を持つ特別なスプリントブランチです。
主な特性
| 特性 | 説明 |
|---|---|
| 分離された編集 | 変更はAIブランチに保存され、メインブランチやソースブランチには影響しない |
| 明確なソース | クライアントで作成できない — CLI/MCPから来る必要があり、ソースブランチを記録する |
| 人間の確認 | 変更はマージする前に確認されなければならない |
| 数量制限なし | 異なるタスクのために必要なだけAIブランチを作成できる |
| 自動アーカイブ | 差分がないブランチは24時間ごとに自動的にアーカイブされる |
仕組み
| 操作 | 発生場所 |
|---|---|
| AIがエンドポイントを作成する | AIブランチ内 |
| AIがテストシナリオを更新する | AIブランチ内 |
| チームが変更をレビューする | クライアントまたはCLIプレビュー内 |
| ユーザーがマージを承認する | ユーザーのアクションであり、AIではない |
| 変更がターゲットブランチに入る | 確認後 |
ユーザーによる通常のクライアント内編集は、引き続きプロジェクトメンバーの権限とブランチ保護ルールに従います。
ユースケース
AIブランチは、ブランチの分離と人間の確認を維持しながら、AIがプロジェクトの保守に参加する必要がある場合に適しています。
| シナリオ | AIブランチがどのように役立つか |
|---|---|
| コードからAPIドラフトを生成する | AIがAIブランチでエンドポイントを作成し、ユーザーはマージ前に確認する |
| APIリソースを一括で整理する | AIがコラボレーションブランチに影響を与えることなく、フォルダ、説明、モデルを調整する |
| 自動テストドラフトを生成する | AIがAIブランチでテストシナリオ/ケースを作成し、テスターがレビューする |
| APIドキュメントのギャップを埋める | AIがバグレポートまたは実装に基づいて不足しているフィールドを補完する |
| CI/CDでバッチ書き込みを行う | 自動化されたワークフローがAIブランチに書き込み、ユーザーのマージを待つ |
基本的なワークフロー
典型的なAIブランチのワークフロー:
┌─────────────────────────────────────────────────────────────────┐
│ AIブランチワークフロー │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ステップ 1: AIブランチを作成する │
│ ┌───────────────────────────────────────────┐ │
│ │ apidog branch create --type ai │ │
│ │ --name "ai/20260312-from-main-feature" │ │
│ │ --from main │ │
│ └───────────────────────────────────────────┘ │
│ ↓ │
│ ステップ 2: リソースをインポートまたは作成する │
│ ┌───────────────────────────────────────────┐ │
│ │ apidog branch pick-to (既存をインポート) │ │
│ │ または │ │
│ │ apidog endpoint create (新規作成) │ │
│ └───────────────────────────────────────────┘ │
│ ↓ │
│ ステップ 3: AIがリソースを変更する │
│ ┌───────────────────────────────────────────┐ │
│ │ AgentがCLIを使用してエンドポイント、 │ │
│ │ スキーマ、テストシナリオなどを更新する。 │ │
│ │ (--branch パラメータでAIブランチを指定) │ │
│ └───────────────────────────────────────────┘ │
│ ↓ │
│ ステップ 4: ユーザーが差分をレビューする │
│ ┌───────────────────────────────────────────┐ │
│ │ apidog merge-request preview │ │
│ │ または │ │
│ │ Apidogクライアントで表示 │ │
│ └───────────────────────────────────────────┘ │
│ ↓ │
│ ステップ 5: ターゲットブランチにマージする │
│ ┌───────────────────────────────────────────┐ │
│ │ 直接マージ(保護されていないブランチ) │ │
│ │ または │ │
│ │ マージリクエスト(保護されたブランチ) │ │
│ └───────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘AIブランチの作成
branch create --type aiを使用します:
apidog branch create \
--project 123456 \
--type ai \
--name "ai/20260312-from-main-userRegister" \
--from main命名推奨: ai/YYYYMMDD-from-sourceBranch-featureOrModule
| コマンド | 目的 |
|---|---|
branch create --type ai |
AIブランチを作成する |
branch list --type ai |
プロジェクト内のAIブランチを表示する |
branch list --type all |
すべてのブランチタイプを表示する |
branch get --type ai |
AIブランチの詳細を表示する |
AIブランチでのリソースの編集
CLIがプロジェクトリソースを書き込む際、--branchパラメータを使用してAIブランチに書き込みます:
| リソース | コマンド例 |
|---|---|
| HTTPエンドポイント | apidog endpoint create --project <id> --branch <aiBranchName> --file ./endpoint.json |
| データモデル | apidog schema update <schemaId> --project <id> --branch <aiBranchName> --file ./schema.json |
| テストシナリオ | apidog test-scenario update <scenarioId> --project <id> --branch <aiBranchName> --file ./scenario.json |
| テストスイート | apidog test-suite create --project <id> --branch <aiBranchName> --file ./suite.json |
推奨ワークフロー:
# 1. スキーマを取得
apidog cli-schema get endpoint-create
# 2. 書き込み前に検証
apidog cli-schema validate endpoint-create --file ./endpoint.json
# 3. AIブランチに書き込み (メインではない)
apidog endpoint create \
--project 123456 \
--branch "ai/20260312-from-main-userRegister" \
--file ./endpoint.json既存のリソースのインポート
既存のリソースを変更するには、まずソースブランチからインポートします:
apidog branch pick-to \
--project 123456 \
--from main \
--to "ai/20260312-from-main-userRegister" \
--endpoint-ids 1001,1002これにより、AIが正しい基本バージョンで作業することが保証されます。
マージ前の変更のレビュー
マージする前に、差分をプレビューします:
apidog merge-request preview \
--project 123456 \
--from "ai/20260312-from-main-userRegister" \
--to mainまたは、Apidogクライアントで完全な差分を表示します。
| コマンド | 目的 |
|---|---|
merge-request preview |
候補となる変更をスキャンする |
branch get --type ai |
AIブランチ情報を表示する |
AIブランチのマージ
レビュー後、変更をマージします:
直接マージ(保護されていないブランチ)
apidog branch merge \
--project 123456 \
--from "ai/20260312-from-main-userRegister" \
--to main \
--endpoint-ids 1001,1002マージリクエスト(保護されたブランチ)
apidog merge-request create \
--project 123456 \
--from "ai/20260312-from-main-userRegister" \
--to main \
--reviewer-ids 20001,20002 \
--endpoint-ids 1001,1002
| コマンド | 目的 |
|---|---|
branch merge |
保護されていないブランチに直接マージする |
merge-request create |
レビューのためのマージリクエストを作成する |
merge-request approve |
マージリクエストを承認する |
merge-request reject |
マージリクエストを拒否する |
重要:マージコマンドは、明示的に指定されたリソースリストのみを処理します。マージする前に、依存関係(ディレクトリ、モデル、レスポンスコンポーネント、テスト)を確認してください。
アーカイブと削除
変更がマージされた後、または不要になった場合:
# アーカイブ
apidog branch archive "ai/20260312-from-main-userRegister" \
--project 123456 --type ai
# 削除 (アーカイブ後)
apidog branch delete "ai/20260312-from-main-userRegister" \
--project 123456 --type ai外部AIの編集権限
デフォルトでは、CLIはAIブランチに書き込みます。これにより、AIが生成した変更はユーザーの確認があるまで分離されたままになります。
メインブランチの直接編集を有効にするには:
プロジェクト設定 → 機能設定 → AI機能設定 → 外部AI編集権限
| 権限 | 許可されること |
|---|---|
| メインブランチ直接編集 | CLIがメインに直接書き込む(AIブランチをバイパス) |
| 標準スプリントブランチ直接編集 | CLIがスプリントブランチに直接書き込む |
| 一般ブランチ直接編集 | CLIが一般ブランチに直接書き込む |
| AIブランチ直接編集 | CLIがAIブランチに書き込む(通常は有効のまま) |
推奨:AIブランチの分離を有効にしておきます。自動化ワークフローが明確に必要とする場合にのみ、直接編集を有効にしてください。
ベストプラクティス
| プラクティス | 理由 |
|---|---|
| タスクごとに1つのAIブランチ | 明確なスコープ:ユーザー登録API、オーダーモジュール文書、支払いテスト |
| 編集前にインポート | 既存のリソースにはpick-toを使用 — ソースの混乱を避ける |
| 書き込み前に検証 | cli-schema validateを使用してAIブランチに書き込む前にエラーを捕捉する |
| マージ前にプレビュー | merge-request previewまたはクライアントの差分ビューを使用する |
| 明確なマージスコープ | エンドポイント、モデル、ディレクトリ、テストを一緒に確認する |
| 人間のレビューを維持 | API定義、テストスクリプトはマージ前にレビューされるべき |
| 迅速にアーカイブ | マージまたは破棄後、ブランチリストをきれいに保つ |
CLI + SKILLワークフローにおけるAIブランチ
AIブランチはCLI + SKILLと自然に統合されます:
| ステージ | CLI + SKILL + AIブランチ |
|---|---|
| 読み取り | 任意のブランチからendpoint get |
| 生成 | AgentがJSONを作成する |
| 検証 | ローカルでcli-schema validate |
| 書き込み | AIブランチにendpoint create --branch <aiBranchName> |
| レビュー | merge-request preview |
| マージ | ユーザーが確認後、branch merge |
| 検証 | マージされたリソースに対してapidog run |
すべての書き込みはAIブランチ → 人間によるレビュー → マージを経由します。
セキュリティの概要
| 層 | 保護 |
|---|---|
cli-schema validate |
書き込み前に構造上のエラーを捕捉する |
agentHints |
Agentを安全な次のステップに導く |
| AIブランチ | メインブランチから変更を隔離する |
| 人間によるレビュー | マージ前にコンテンツを確認する |
| マージスコープ | ユーザーがマージするリソースを選択する |
これらの層が連携して、Agent主導のプロジェクト変更のためのより安全なループを形成します。
次は何?
AIブランチが安全層を提供することで、すべての要素が揃いました:
- ツール接続のためのMCP(パート1)
- ワークフロー実行のためのCLI + SKILL(パート2-5)
- 検証結果(パート6)
- 実践的なワークフロー(パート7)
- CI/CD基盤(パート8)
- 安全のためのAIブランチ(パート9)
次はビジョンの番です。
パート10「Spec-Firstは昨日。Skill-Firstへようこそ。」では、API開発がAI Agentと共にどのように進化するか、そしてチームが次に何をすべきかについて概説します。
主要なポイント
- AIブランチは、AI/CLI操作のために分離された編集環境を提供します
- 変更は、人間の確認があるまでメインブランチには影響しません
branch create --type aiで作成し、--branchパラメータで書き込みます- 編集前に
branch pick-toで既存のリソースをインポートします merge-request previewでプレビューし、その後マージまたはマージリクエストを作成します- 直接編集権限はAIブランチをバイパスする可能性があります — 慎重に使用してください
- ベストプラクティス:タスクごとに1つのAIブランチ、書き込み前の検証、マージ前のレビュー
Apidogをダウンロードして、1つのワークスペースでAPIの設計、モック、テスト、ドキュメント化を行いましょう。コマンドラインAPIテスト、CI自動化、AI Agentワークフローに関するApidog CLIの詳細をご覧ください。
