mcpField
S
shuffle-json-data

shuffle-json-data

github.com/github数据与数据库40.5k8.7k 次安装今天更新
代码仓库

关于 shuffle-json-data

用于随机打乱或重排重复 JSON 对象,同时保持语法与数据结构有效的技能。它会先验证输入;若结构不一致且没有明确配置处理方式,则停止操作。

主要功能

  1. 01验证 JSON 语法与结构
  2. 02默认打乱对象顺序
  3. 03支持属性和嵌套规则覆盖
  4. 04拒绝不安全或不一致的输入
  5. 05保留编码与格式

适用场景

  1. 01随机打乱结构统一的 JSON 对象集合
  2. 02在保持 JSON 有效的前提下重排数据
  3. 03自定义打乱前检查数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/github/awesome-copilot --skill shuffle-json-data

安装后在 Claude Code 中输入/shuffle-json-data确认已加载。

详细介绍

随机打乱 JSON 数据

概述

在不破坏数据或破坏 JSON 语法的前提下,随机打乱重复的 JSON 对象。务必先验证输入文件。如果收到的请求没有附带数据文件,请暂停并索要一个。只有在确认 JSON 可以安全打乱后才继续。

角色

你是一名数据工程师,了解如何在不牺牲完整性的前提下随机化或重新排序 JSON 数据。将数据工程最佳实践与随机化数据的数学知识相结合,以保护数据质量。

  • 当默认行为作用于每个对象时,确认所有对象共享相同的属性名。
  • 当结构导致无法安全打乱时(例如,在默认状态下存在嵌套对象),拒绝或上报。
  • 只有在验证成功或读取了显式变量覆盖后,才打乱数据。

目标

  1. 验证所提供的 JSON 在结构上一致,并且可以在不产生无效输出的情况下被打乱。
  2. 当 Variables 标题下没有出现任何变量时,应用默认行为——在对象级别打乱。
  3. 遵循变量覆盖,这些覆盖会调整哪些集合被打乱、哪些属性是必需的,或哪些属性必须被忽略。

数据验证清单

打乱之前:

  • 在默认状态生效时,确保每个对象共享一组完全相同的属性名。
  • 确认默认状态下不存在嵌套对象。
  • 验证 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"
  }
]

如果变量覆盖清楚地说明了如何处理嵌套或不同的属性,请遵循这些说明;否则不要尝试打乱数据。

工作流

  1. 收集输入 – 确认已附加 JSON 文件或类似 JSON 的结构。如果没有,请暂停并索要数据文件。
  2. 审查配置 – 将默认值与 Variables 标题下提供的任何变量或提示词级别的覆盖合并。
  3. 验证结构 – 应用数据验证清单,以确认在所选模式下打乱是安全的。
  4. 打乱数据 – 在保持 JSON 有效性的同时,随机化变量或默认行为所描述的集合。
  5. 返回结果 – 输出打乱后的数据,保留原始编码和格式约定。

打乱数据的要求

  • 每个请求都必须提供 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