YAML実行環境横断事前チェック

GitHub Actions workflow、Docker Compose、Kubernetesマニフェスト、一般的なYAMLを貼り付け、構造や曖昧な値が読み手のツールによって異なって動作する箇所を確認します。YAML意味差チェッカーのYAML 1.1/1.2スカラー曖昧性(Norway問題など)をそのまま再利用し、アンカー/エイリアス、マージキー、タブ、重複キー、flow形式など実際のYAML利用者に関係する構造検査を追加します。

ブラウザー内でローカルに処理します。ファイルがアップロードされることはありません。

使い方 ツール

  1. YAMLを貼り付けるか.yaml/.ymlファイルを読み込みます。内容はブラウザー外へ送信されません。
  2. 「YAMLを確認」を選びます。
  3. 指摘ごとに影響する実行環境・ツールと理由を確認します。
  4. タブから空白への変換、曖昧スカラーの引用など、安全な書き換えだけを利用してください。アンカー、マージキー、重複キーは要求していない構造変更を避けるため指摘のみです。

前提条件

出典と参考データ

方法論

2段階で解析します。まず各plainスカラーをYAML 1.1とYAML 1.2 Core Schemaで解決(YAML意味差チェッカーと同じロジック)し、差があれば実行環境上の意味を説明します。次に実際のYAML利用者で差がある構造を検査します:アンカー/エイリアス(再帰展開による資源枯渇防止のため制限するツールがある)、マージキー(YAML 1.1拡張でYAML 1.2仕様外、Kubernetesや厳格パーサーは非対応)、タブインデント(YAML仕様で禁止)、同一マッピングの重複キー(仕様未定義で多くは最後の値を黙って保持)、ブロック文書内のflow形式(低信頼度の参考情報)。

計算例

GitHub Actions matrixでフラグに見える値

入力項目: flag: on

結果: YAML意味差ツールのNorway問題検出を再利用し、YAML 1.1は`on`を真偽値true、YAML 1.2は文字列`on`と解釈します。matrix/env値なら文字列を意図した可能性があります。

Docker Composeのマージキー

入力項目: <<: *defaults

結果: マージキーはYAML 1.1拡張でYAML 1.2仕様外、Kubernetes処理や複数の厳格パーサーでも非対応のためエラーとして指摘します。自動修正せず、移植可能にするにはアンカー内容を手動で展開してください。

タブでインデントされたKubernetesマニフェスト

入力項目: \tname: demo

結果: タブは推奨されないだけでなくYAML仕様で禁止されるためエラーとして指摘し、各先頭タブを空白2つへ変換します。

実用的なアドバイス
よくある間違い

よくある質問

YAML意味差チェッカーと重複しているのはなぜ?

重複実装ではなく再利用しています。規則1はスカラー解決ロジックを直接呼び出し、意味差チェッカーが対象外とする構造検査(アンカー、マージキー、タブ、重複キー、flow形式)を追加します。

マージキーはエラーでアンカー/エイリアスは警告なのはなぜ?

マージキーはYAML 1.2仕様外でKubernetesなどが明示的に非対応とし、失敗の可能性が高いです。アンカー/エイリアスは有効な基本YAML機能で広く使われますが、安全上の理由で制限するツールもあり、確実性は低いリスクです。

アンカー、マージキー、重複キーを自動修正しないのはなぜ?

アンカーの展開内容や重複キーのどちらが意図されたかなど、文書の意味を理解する必要があります。機械的なテキスト変更では決められないため推測せず、手動対応を説明します。

最終確認日: 2026-09-26

限定的なパターン構造検査とスカラー曖昧性比較の再利用であり、完全なYAMLパーサーや個別ツールの厳密な動作検証ではありません。flow形式内部のスカラー曖昧性は検査せず、重複キーは文書ツリーでなくインデントからマッピング階層を推定します。

テーマとツールの設定、保存済みリストと最近使用したリストは、このブラウザー内にのみ保存されます。