52
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude CodeとCodexで使える、OCI構成図を自然言語から自動生成するSkillsを作った

52
Last updated at Posted at 2026-02-18

はじめに

OCIの構成図、描くの面倒じゃないですか。

draw.ioを開いて、アイコンを探して、ドラッグ&ドロップして、線を引いて、配置を整えて……。
設計の本質ではない作業に時間を取られがちです。

そこで、自然言語で指示するだけで .drawio ファイルが出てくるSkillsを作りました。

Claude Code と OpenAI Codex の両方で使えます。

できること

1. 自然言語から構成図を生成

こんな指示をすると:

OCI上に3層Webアプリの構成図を描いてください。
LBの後ろにWebサーバー2台、プライベートサブネットにAppサーバーとAutonomous Databaseを配置してください。

CleanShot 2026-02-18 at 20.41.51@2x.png

こんな構成図が生成されます:

CleanShot 2026-02-18 at 21.37.27.png

2. 高可用性構成も一発

WAF + 冗長Web/App + Data GuardのHA構成図を作ってください。

CleanShot 2026-02-18 at 21.25.13.png

3. 既存ファイルの編集

web-architecture.drawio にObject Storageを追加してください。

すでにある .drawio ファイルを読み込んで、コンポーネントの追加や削除もできます。

CleanShot 2026-02-18 at 21.32.03.png

AI Coding AssistantのSkillsとは

最近のAI Coding Assistantには「Skills」という仕組みがあります。特定のタスクに特化した指示書(Markdownファイル)を所定のディレクトリに置いておくと、アシスタントがそれを読み込んで専門的なタスクをこなせるようになるものです。

今回のoci-drawioスキルは、Claude CodeとCodexの両方に対応しています。

項目 Claude Code Codex
配置先 ~/.claude/skills/ ~/.codex/skills/ or .agents/skills/
認識方法 ディレクトリ名 + SKILL.md YAML frontmatter の name/description
起動方法 /oci-drawio で明示起動 指示内容から自動マッチ

両対応のポイントは SKILL.md の先頭にYAML frontmatterを付けることです。Claude Codeはfrontmatterを無視してMarkdown本文を読み、CodexはfrontmatterのnameとdescriptionでSkillを認識します。1ファイルでどちらのツールでも動きます。

---
name: oci-drawio
description: Generate and edit OCI architecture diagrams in draw.io (.drawio) format.
---

# OCI draw.io Diagram Skill
...

導入方法

前提ツール

以下のコマンドが必要です(macOS / Linuxならほぼ入っています)。

  • curl — アイコンのダウンロード
  • unzip — zipの展開
  • base64 — SVGのエンコード
  • python3 — JSON生成

インストール

# リポジトリをクローン
git clone https://github.com/araidon/oci-skills.git
cd oci-skills

# Claude Codeにインストール(デフォルト)
./install.sh oci-drawio

Codexを使っている場合は --tool オプションで切り替えられます。

# Codex グローバル(~/.codex/skills/)
./install.sh oci-drawio --tool codex

# Codex プロジェクトローカル(.codex/skills/)
./install.sh oci-drawio --tool codex-local

# Codex リポジトリスキャン(.agents/skills/)
./install.sh oci-drawio --tool codex-repo

セットアップ

インストール後、初回のみセットアップスクリプトを実行します。Oracle公式サイトからOCIアイコン(SVG)をダウンロードして、draw.io用の形式に変換します。

cd ~/.claude/skills/oci-drawio    # インストール先に移動
bash setup.sh

これで準備完了です。

仕組み

draw.io XML直接生成

このSkillはdraw.ioのMCPサーバーを使っていません。.drawio ファイルの実体はXMLなので、XMLテキストを直接生成する方式にしています。追加のサーバー設定が不要で、配布しやすいのがメリットです。

コンポーネント辞書

oci_components.json に234個のOCIコンポーネントが登録されています。各コンポーネントにはdraw.ioのstyle文字列、アイコンサイズ、カテゴリ、説明が含まれていて、AIアシスタントはこの辞書を参照して適切なスタイルを適用します。

{
  "VCN": {
    "style": "shape=image;verticalLabelPosition=bottom;...",
    "width": 60,
    "height": 60,
    "category": "networking",
    "description": "Virtual Cloud Network"
  }
}

OCI公式アイコンの埋め込み

Oracle公式のSVGアイコンをbase64エンコードしてstyle文字列に埋め込んでいます。
draw.ioのstyleパーサーは ; をデリミタとして使うため、data:image/svg+xml;base64,XXXX ではなく data:image/svg+xml,XXXX の形式で埋め込む必要があります。ここは地味にハマるポイントでした。

また、Oracle公式のSVGにはXMPメタデータが含まれていてbase64が肥大化するため、セットアップ時にメタデータを除去して軽量化しています。

レイアウト規則

SKILL.mdにはOCI構成図のレイアウト規則が定義されています。AIアシスタントはこの規則に従って、Region → VCN → Subnet → Service の階層構造で構成図を配置します。

┌─ Region ──────────────────────────────────────────────────────┐
│                                                               │
│ [IGW]┌─ VCN ──────────────────────────────┐[SGW]             │
│ [NAT]│                                    │                   │
│ [DRG]│  ┌─ Edge Subnet ───────────────┐   │                  │
│      │  │  [LB]  [Bastion]            │   │                  │
│      │  └─────────────────────────────┘   │                  │
│      │  ┌─ App Subnet ────────────────┐   │                  │
│      │  │  [App]  [App]               │   │                  │
│      │  └─────────────────────────────┘   │                  │
│      │  ┌─ Data Subnet ───────────────┐   │                  │
│      │  │  [DB]                        │   │                  │
│      │  └─────────────────────────────┘   │                  │
│      └────────────────────────────────────┘                  │
└───────────────────────────────────────────────────────────────┘

GatewayアイコンはVCNの枠線上に跨がせて配置するなど、Oracle公式のLandscape Sampleに準拠したスタイルになっています。

対応コンポーネント一覧

234コンポーネントを収録しています。主要なものを抜粋します。

カテゴリ コンポーネント
Networking VCN, Subnet, Internet Gateway, NAT Gateway, Service Gateway, DRG, Load Balancer, Network Load Balancer, DNS, FastConnect, VPN, Local Peering Gateway
Compute VM Instance, Bare Metal, Autoscaling, Instance Pools, Functions
Database Autonomous Database, MySQL HeatWave, DB System, Exadata, Data Guard
Storage Object Storage, Block Volume, File Storage, Buckets
Security WAF, Network Firewall, Vault, Bastion, IAM, Cloud Guard, Encryption
Container OKE, Container Instances, OCIR
Monitoring Streaming, Notifications, Logging, Monitoring, Alarms
AI/ML Data Science, Digital Assistant, Language, Vision
Integration API Gateway, Service Mesh, GoldenGate

全コンポーネントの一覧は oci_components.json を参照してください。

さいごに

「構成図を描いてください」と一言伝えるだけで .drawio ファイルが生成される体験、なかなか便利です。

コンポーネントの追加や新しいレイアウトパターンの提案など、コントリビュートも歓迎しています。

参考リンク

52
32
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
52
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?