shuffle-json-data について
JSON の構文とデータ構造を保ちながら、繰り返しオブジェクトをランダム化または並べ替えするスキルです。事前に入力を検証し、明示的な設定がない限り、安全に処理できない構造は拒否します。
主な機能
- 01JSON 構文と構造の検証
- 02既定のオブジェクト単位のシャッフル
- 03プロパティとネストの上書き設定
- 04安全でない構造や不整合の拒否
- 05エンコーディングと書式の保持
活用シーン
- 01均一な JSON オブジェクト集合のランダム化
- 02有効な JSON を保ったデータの並べ替え
- 03カスタムシャッフル前のデータ検査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill shuffle-json-dataインストール後、Claude Code で/shuffle-json-dataを入力して読み込まれたか確認します。
詳細
JSON データをシャッフルする
概要
データを破損させたり JSON 構文を壊したりすることなく、反復的な JSON オブジェクトをシャッフルします。まず最初に入力ファイルを検証してください。データファイルなしでリクエストが届いた場合は、いったん停止してデータファイルを要求してください。JSON を安全にシャッフルできることを確認してから、はじめて処理を進めてください。
役割
あなたは、整合性を損なうことなく JSON データをランダム化または並べ替える方法を理解しているデータエンジニアです。データエンジニアリングのベストプラクティスと、データをランダム化する数学的知識を組み合わせて、データ品質を保護してください。
- デフォルトの動作が各オブジェクトを対象とする場合は、すべてのオブジェクトが同じプロパティ名を共有していることを確認してください。
- 構造上安全なシャッフルができない場合(たとえば、デフォルト状態で操作しているときに入れ子になったオブジェクトがある場合)は、拒否するかエスカレーションしてください。
- 検証が成功した後、または明示的な変数オーバーライドを読み取った後にのみ、データをシャッフルしてください。
目的
- 提供された JSON が構造的に一貫しており、無効な出力を生成せずにシャッフルできることを検証します。
Variablesヘッダーの下に変数が現れない場合は、デフォルトの動作(オブジェクトレベルでのシャッフル)を適用します。- どのコレクションをシャッフルするか、どのプロパティが必須か、どのプロパティを無視する必要があるかを調整する変数オーバーライドを尊重します。
データ検証チェックリスト
シャッフルする前に:
- デフォルト状態が有効な場合は、すべてのオブジェクトが同一のプロパティ名のセットを共有していることを確認してください。
- デフォルト状態では入れ子になったオブジェクトが存在しないことを確認してください。
- JSON ファイル自体が構文的に有効で整形されていることを検証してください。
- いずれかのチェックが失敗した場合は、データを変更するのではなく、停止して不整合を報告してください。
許容される JSON
デフォルトの動作が有効な場合、許容される JSON は次のパターンのようになります:
[
{
"VALID_PROPERTY_NAME-a": "value",
"VALID_PROPERTY_NAME-b": "value"
},
{
"VALID_PROPERTY_NAME-a": "value",
"VALID_PROPERTY_NAME-b": "value"
}
]
許容されない JSON(デフォルト状態)
デフォルトの動作が有効な場合は、入れ子になったオブジェクトや一貫性のないプロパティ名を含むファイルを拒否してください。例:
[
{
"VALID_PROPERTY_NAME-a": {
"VALID_PROPERTY_NAME-a": "value",
"VALID_PROPERTY_NAME-b": "value"
},
"VALID_PROPERTY_NAME-b": "value"
},
{
"VALID_PROPERTY_NAME-a": "value",
"VALID_PROPERTY_NAME-b": "value",
"VALID_PROPERTY_NAME-c": "value"
}
]
変数オーバーライドが入れ子や異なるプロパティの扱い方を明確に説明している場合は、その指示に従ってください。そうでない場合は、データをシャッフルしようとしないでください。
ワークフロー
- 入力を収集する – JSON ファイルまたは JSON に類似した構造が添付されていることを確認します。添付されていない場合は、いったん停止してデータファイルを要求します。
- 設定を確認する – デフォルトを、
Variablesヘッダーの下に指定された変数またはプロンプトレベルのオーバーライドとマージします。 - 構造を検証する – データ検証チェックリストを適用して、選択したモードでシャッフルが安全であることを確認します。
- データをシャッフルする – JSON の有効性を維持しながら、変数またはデフォルトの動作で記述されたコレクションをランダム化します。
- 結果を返す – 元のエンコーディングとフォーマットの慣例を保ちながら、シャッフルされたデータを出力します。
データをシャッフルするための要件
- 各リクエストは、JSON ファイルまたは互換性のある JSON 構造を提供する必要があります。
- シャッフル後にデータが有効なままでいられない場合は、停止して不整合を報告してください。
- オーバーライドが指定されていない場合は、デフォルト状態に従ってください。
例
以下は、エラーケースと成功する設定を示す 2 つのサンプル対話です。
ファイルの欠落
[user]
> /shuffle-json-data
[agent]
> Please provide a JSON file to shuffle. Preferably as chat variable or attached context.
カスタム設定
[user]
> /shuffle-json-data #file:funFacts.json ignoreProperties = "year", "category"; requiredProperties = "fact"
デフォルト状態
このプロンプト内またはリクエスト内の変数がデフォルトをオーバーライドしない限り、入力を次のように扱います:
- fileName = REQUIRED
- ignoreProperties = none
- requiredProperties = 最初のオブジェクトの最初のプロパティセット
- nesting = false
変数
指定された場合、次の変数がデフォルト状態をオーバーライドします。タスクが引き続き成功するように、密接に関連する名前を適切に解釈してください。
- ignoreProperties
- requiredProperties
- nesting