相关 Skills
SKILL.md
readonly只读
name
shuffle-json-data
description
通过验证模式一致性后安全地打乱重复的JSON对象。
打乱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]
> 请提供一个JSON文件用于打乱。最好是作为聊天变量或附加上下文提供。
自定义配置
[user]
> /shuffle-json-data #file:funFacts.json ignoreProperties = "year", "category"; requiredProperties = "fact"
默认状态
除非此提示或请求中的变量覆盖了默认值,否则将输入视为如下:
- fileName = 必需
- ignoreProperties = 无
- requiredProperties = 第一个对象的第一组属性
- nesting = false
Variables
当提供时,以下变量覆盖默认状态。合理解释相近的名称,以便任务仍能成功。
- ignoreProperties
- requiredProperties
- nesting






