关于 shuffle-json-data
用于随机打乱或重排重复 JSON 对象,同时保持语法与数据结构有效的技能。它会先验证输入;若结构不一致且没有明确配置处理方式,则停止操作。
主要功能
- 01验证 JSON 语法与结构
- 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 结构。
- 如果数据在打乱后无法保持有效,请停止并报告不一致。
- 当未提供覆盖时,遵循默认状态。
示例
以下是两个示例交互,演示一个错误案例和一个成功配置。
缺少文件
[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 = first set of properties from the first object
- nesting = false
变量
当提供时,以下变量会覆盖默认状态。请合理理解密切相关的名称,以便任务仍能成功完成。
- ignoreProperties
- requiredProperties
- nesting
评论
支持 Markdown