jpskill.com
📦 その他 コミュニティ

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本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
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
🪟 Windows (PowerShell)
$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. 1. 下の青いボタンを押して yaml-authoring.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → yaml-authoring フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

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"

versiondocId がドキュメントのルートにあることを確認してください。

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 を持たない) は、xy を持つ 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"

fromto が既存のノード ID を参照していることを確認してください。

YAML 構文エラー

Error: YAML parse error at line 5

インデント (2 スペース) と適切な引用符を確認してください。

ヒント

  • 説明的な ID を使用してください: user-apin1 ではありません
  • ラベルにはスペースと特殊文字を含めることができます (引用符を使用)
  • parent を使用して、VPC/サブネットコンテナ内にリソースをネストします
  • コンテナノード (VPC、サブネット) には、レイアウトに wh が必要です
  • 子ノードは、自動グリッド配置のために 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/y overrides auto-positioning
  • Cannot specify only x or only y (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-api not n1
  • Labels can include spaces and special characters (use quotes)
  • Use parent to nest resources inside VPC/Subnet containers
  • Container nodes (VPC, Subnet) require w and h in layout
  • Child nodes can omit layout entirely for automatic grid positioning
  • Use comments with # for documentation
  • The kind field is flexible - use any string that makes sense for your architecture