yaml-authoring
YAML形式の図表ファイルを作成したり、構文エラーをチェックしたりする際に役立ち、新しい図表の作成やYAML構文のトラブルシューティングを効率的に進めるSkill。
📜 元の英語説明(参考)
Create and validate YAML diagram files. Use when writing new diagrams or troubleshooting YAML syntax.
🇯🇵 日本人クリエイター向け解説
YAML形式の図表ファイルを作成したり、構文エラーをチェックしたりする際に役立ち、新しい図表の作成やYAML構文のトラブルシューティングを効率的に進めるSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o yaml-authoring.zip https://jpskill.com/download/16766.zip && unzip -o yaml-authoring.zip && rm yaml-authoring.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/16766.zip -OutFile "$d\yaml-authoring.zip"; Expand-Archive "$d\yaml-authoring.zip" -DestinationPath $d -Force; ri "$d\yaml-authoring.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
yaml-authoring.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
yaml-authoringフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
YAML ダイアグラムのオーサリング
基本構造
version: 1
docId: unique-document-id
title: "My Architecture Diagram" # オプション
nodes:
- id: unique-id
provider: aws # プロバイダー名 (例: aws, gcp, azure)
kind: compute.lambda # サービスカテゴリ.タイプ
label: "Display Name" # オプション
parent: container-id # オプション、VPC/サブネットにネストする場合
layout: # オプション、子ノードの場合 (自動配置)
x: 100 # オプション、子ノードの場合
y: 200 # オプション、子ノードの場合
w: 200 # コンテナ (VPC/サブネット) に必須
h: 150 # コンテナに必須
edges:
- id: edge-1
from: source-node-id
to: target-node-id
label: "optional label" # オプション
自動レイアウト
子ノード (parent を持つ) は、自動配置のために layout を完全に省略できます。
nodes:
- id: vpc
provider: aws
kind: network.vpc
layout: { x: 0, y: 0, w: 800, h: 600 } # コンテナ: 明示的なレイアウト
- id: ec2_1
provider: aws
kind: compute.ec2
parent: vpc
# レイアウトなし - (40, 40) に自動配置
- id: ec2_2
provider: aws
kind: compute.ec2
parent: vpc
# レイアウトなし - (200, 40) に自動配置
自動レイアウトのルール:
- 1行あたり3列
- 60px のパディング、160px の水平方向の間隔、140px の垂直方向の間隔
- 明示的な
x/yは自動配置をオーバーライドします xまたはyのみを指定することはできません (両方またはどちらも指定しない)
ノードの種類カテゴリ
kind フィールドは、階層形式 category.type または category.subcategory.type を使用します。
コンテナの種類 (レイアウトに w/h が必要)
| Kind | 説明 |
|---|---|
network.vpc |
Virtual Private Cloud |
network.subnet |
VPC 内のサブネット |
リソースの種類
| カテゴリ | Kind の例 |
|---|---|
compute |
compute.lambda, compute.ec2, compute.ecs, compute.eks |
compute.lb |
compute.lb.alb, compute.lb.nlb, compute.lb.elb |
database |
database.dynamodb, database.rds, database.aurora |
storage |
storage.s3, storage.efs, storage.ebs |
integration |
integration.apiGateway, integration.sns, integration.sqs, integration.eventBridge |
security |
security.iam, security.cognito, security.waf |
analytics |
analytics.kinesis, analytics.athena, analytics.glue |
例
シンプルな Lambda + S3
version: 1
docId: lambda-s3-example
title: "Lambda S3 Integration"
nodes:
- id: fn
provider: aws
kind: compute.lambda
label: "Process Upload"
layout:
x: 100
y: 100
- id: bucket
provider: aws
kind: storage.s3
label: "uploads-bucket"
layout:
x: 300
y: 100
edges:
- id: fn-to-bucket
from: fn
to: bucket
API とデータベース
version: 1
docId: api-db-example
title: "REST API Architecture"
nodes:
- id: api
provider: aws
kind: integration.apiGateway
label: "REST API"
layout:
x: 100
y: 200
- id: handler
provider: aws
kind: compute.lambda
label: "Handler"
layout:
x: 300
y: 200
- id: db
provider: aws
kind: database.dynamodb
label: "Users Table"
layout:
x: 500
y: 200
edges:
- id: api-to-handler
from: api
to: handler
label: "invoke"
- id: handler-to-db
from: handler
to: db
label: "read/write"
ネストされたリソースを持つ VPC
version: 1
docId: vpc-example
title: "VPC Architecture"
nodes:
- id: vpc
provider: aws
kind: network.vpc
label: "Production VPC"
layout:
x: 50
y: 50
w: 600
h: 400
- id: public-subnet
provider: aws
kind: network.subnet
label: "Public Subnet"
parent: vpc
layout:
x: 70
y: 100
w: 250
h: 300
- id: alb
provider: aws
kind: compute.lb.alb
label: "Application LB"
parent: public-subnet
layout:
x: 100
y: 150
- id: lambda
provider: aws
kind: compute.lambda
label: "API Handler"
parent: public-subnet
layout:
x: 100
y: 280
edges:
- id: alb-to-lambda
from: alb
to: lambda
バリデーション
# JSON にバリデーションしてビルド
bun run packages/cli/src/index.ts build diagram.yaml
# ライブリロードで提供 (デフォルトポート: 3456)
bun run packages/cli/src/index.ts serve diagram.yaml
よくあるエラー
必須フィールドの欠落
Error: Missing required field "version"
Error: Missing required field "docId"
version と docId がドキュメントのルートにあることを確認してください。
ID の重複
Error: Duplicate node id: "my-node"
各ノードとエッジは一意の id を持つ必要があります。
エッジ ID の欠落
Error: Edge must have an id
すべてのエッジには id フィールドが必要です。
レイアウトの欠落
Error: layout is required for top-level nodes
Error: layout.x is required for top-level nodes
トップレベルノード (parent を持たない) は、x と y を持つ layout を持つ必要があります。子ノードは、自動配置のためにレイアウトを省略できます。
部分的な座標
Error: layout.x and layout.y must be both specified or both omitted
x または y のみを指定することはできません。両方を指定するか、自動レイアウトのために両方を省略してください。
無効な親参照
Error: Node "child" references unknown parent: "missing-vpc"
parent が既存のコンテナノードを参照していることを確認してください。
エッジターゲットの欠落
Error: Edge references unknown node: "missing-id"
from と to が既存のノード ID を参照していることを確認してください。
YAML 構文エラー
Error: YAML parse error at line 5
インデント (2 スペース) と適切な引用符を確認してください。
ヒント
- 説明的な ID を使用してください:
user-apiでn1ではありません - ラベルにはスペースと特殊文字を含めることができます (引用符を使用)
parentを使用して、VPC/サブネットコンテナ内にリソースをネストします- コンテナノード (VPC、サブネット) には、レイアウトに
wとhが必要です - 子ノードは、自動グリッド配置のために
layoutを完全に省略できます - ドキュメントには
#でコメントを使用してください kindフィールドは柔軟です - 意味のある任意の文字列を使用してください
(原文がここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
YAML Diagram Authoring
Basic Structure
version: 1
docId: unique-document-id
title: "My Architecture Diagram" # optional
nodes:
- id: unique-id
provider: aws # Provider name (e.g., aws, gcp, azure)
kind: compute.lambda # Service category.type
label: "Display Name" # optional
parent: container-id # optional, for nesting in VPC/Subnet
layout: # optional for child nodes (auto-positioned)
x: 100 # optional for child nodes
y: 200 # optional for child nodes
w: 200 # required for containers (VPC/Subnet)
h: 150 # required for containers
edges:
- id: edge-1
from: source-node-id
to: target-node-id
label: "optional label" # optional
Auto-Layout
Child nodes (with parent) can omit layout entirely for automatic positioning:
nodes:
- id: vpc
provider: aws
kind: network.vpc
layout: { x: 0, y: 0, w: 800, h: 600 } # Container: explicit layout
- id: ec2_1
provider: aws
kind: compute.ec2
parent: vpc
# No layout - auto-positioned at (40, 40)
- id: ec2_2
provider: aws
kind: compute.ec2
parent: vpc
# No layout - auto-positioned at (200, 40)
Auto-layout rules:
- 3 columns per row
- 60px padding, 160px horizontal spacing, 140px vertical spacing
- Explicit
x/yoverrides auto-positioning - Cannot specify only
xor onlyy(both or neither)
Node Kind Categories
The kind field uses a hierarchical format: category.type or category.subcategory.type
Container Types (require w/h in layout)
| Kind | Description |
|---|---|
network.vpc |
Virtual Private Cloud |
network.subnet |
Subnet within VPC |
Resource Types
| Category | Kind Examples |
|---|---|
compute |
compute.lambda, compute.ec2, compute.ecs, compute.eks |
compute.lb |
compute.lb.alb, compute.lb.nlb, compute.lb.elb |
database |
database.dynamodb, database.rds, database.aurora |
storage |
storage.s3, storage.efs, storage.ebs |
integration |
integration.apiGateway, integration.sns, integration.sqs, integration.eventBridge |
security |
security.iam, security.cognito, security.waf |
analytics |
analytics.kinesis, analytics.athena, analytics.glue |
Examples
Simple Lambda + S3
version: 1
docId: lambda-s3-example
title: "Lambda S3 Integration"
nodes:
- id: fn
provider: aws
kind: compute.lambda
label: "Process Upload"
layout:
x: 100
y: 100
- id: bucket
provider: aws
kind: storage.s3
label: "uploads-bucket"
layout:
x: 300
y: 100
edges:
- id: fn-to-bucket
from: fn
to: bucket
API with Database
version: 1
docId: api-db-example
title: "REST API Architecture"
nodes:
- id: api
provider: aws
kind: integration.apiGateway
label: "REST API"
layout:
x: 100
y: 200
- id: handler
provider: aws
kind: compute.lambda
label: "Handler"
layout:
x: 300
y: 200
- id: db
provider: aws
kind: database.dynamodb
label: "Users Table"
layout:
x: 500
y: 200
edges:
- id: api-to-handler
from: api
to: handler
label: "invoke"
- id: handler-to-db
from: handler
to: db
label: "read/write"
VPC with Nested Resources
version: 1
docId: vpc-example
title: "VPC Architecture"
nodes:
- id: vpc
provider: aws
kind: network.vpc
label: "Production VPC"
layout:
x: 50
y: 50
w: 600
h: 400
- id: public-subnet
provider: aws
kind: network.subnet
label: "Public Subnet"
parent: vpc
layout:
x: 70
y: 100
w: 250
h: 300
- id: alb
provider: aws
kind: compute.lb.alb
label: "Application LB"
parent: public-subnet
layout:
x: 100
y: 150
- id: lambda
provider: aws
kind: compute.lambda
label: "API Handler"
parent: public-subnet
layout:
x: 100
y: 280
edges:
- id: alb-to-lambda
from: alb
to: lambda
Validation
# Validate and build to JSON
bun run packages/cli/src/index.ts build diagram.yaml
# Serve with live reload (default port: 3456)
bun run packages/cli/src/index.ts serve diagram.yaml
Common Errors
Missing Required Fields
Error: Missing required field "version"
Error: Missing required field "docId"
Ensure version and docId are at the document root.
Duplicate IDs
Error: Duplicate node id: "my-node"
Each node and edge must have a unique id.
Missing Edge ID
Error: Edge must have an id
All edges require an id field.
Missing Layout
Error: layout is required for top-level nodes
Error: layout.x is required for top-level nodes
Top-level nodes (without parent) must have a layout with x and y. Child nodes can omit layout for auto-positioning.
Partial Coordinates
Error: layout.x and layout.y must be both specified or both omitted
You cannot specify only x or only y. Either provide both, or omit both for auto-layout.
Invalid Parent Reference
Error: Node "child" references unknown parent: "missing-vpc"
Ensure parent references an existing container node.
Missing Edge Target
Error: Edge references unknown node: "missing-id"
Ensure from and to reference existing node IDs.
YAML Syntax Error
Error: YAML parse error at line 5
Check indentation (2 spaces) and proper quoting.
Tips
- Use descriptive IDs:
user-apinotn1 - Labels can include spaces and special characters (use quotes)
- Use
parentto nest resources inside VPC/Subnet containers - Container nodes (VPC, Subnet) require
wandhin layout - Child nodes can omit
layoutentirely for automatic grid positioning - Use comments with
#for documentation - The
kindfield is flexible - use any string that makes sense for your architecture