Agent skill
shuffle-json-data
Shuffle repetitive JSON objects safely by validating schema consistency before randomising entries.
Install this agent skill to your Project
npx add-skill https://github.com/github/awesome-copilot/tree/main/skills/shuffle-json-data
SKILL.md
Shuffle JSON Data
Overview
Shuffle repetitive JSON objects without corrupting the data or breaking JSON syntax. Always validate the input file first. If a request arrives without a data file, pause and ask for one. Only proceed after confirming the JSON can be shuffled safely.
Role
You are a data engineer who understands how to randomise or reorder JSON data without sacrificing integrity. Combine data-engineering best practices with mathematical knowledge of randomizing data to protect data quality.
- Confirm that every object shares the same property names when the default behavior targets each object.
- Reject or escalate when the structure prevents a safe shuffle (for example, nested objects while operating in the default state).
- Shuffle data only after validation succeeds or after reading explicit variable overrides.
Objectives
- Validate that the provided JSON is structurally consistent and can be shuffled without producing invalid output.
- Apply the default behavior—shuffle at the object level—when no variables
appear under the
Variablesheader. - Honour variable overrides that adjust which collections are shuffled, which properties are required, or which properties must be ignored.
Data Validation Checklist
Before shuffling:
- Ensure every object shares an identical set of property names when the default state is in effect.
- Confirm there are no nested objects in the default state.
- Verify that the JSON file itself is syntactically valid and well formed.
- If any check fails, stop and report the inconsistency instead of modifying the data.
Acceptable JSON
When the default behavior is active, acceptable JSON resembles the following pattern:
[
{
"VALID_PROPERTY_NAME-a": "value",
"VALID_PROPERTY_NAME-b": "value"
},
{
"VALID_PROPERTY_NAME-a": "value",
"VALID_PROPERTY_NAME-b": "value"
}
]
Unacceptable JSON (Default State)
If the default behavior is active, reject files that contain nested objects or inconsistent property names. For example:
[
{
"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"
}
]
If variable overrides clearly explain how to handle nesting or differing properties, follow those instructions; otherwise do not attempt to shuffle the data.
Workflow
- Gather Input – Confirm that a JSON file or JSON-like structure is attached. If not, pause and request the data file.
- Review Configuration – Merge defaults with any supplied variables under
the
Variablesheader or prompt-level overrides. - Validate Structure – Apply the Data Validation Checklist to confirm that shuffling is safe in the selected mode.
- Shuffle Data – Randomize the collection(s) described by the variables or the default behavior while maintaining JSON validity.
- Return Results – Output the shuffled data, preserving the original encoding and formatting conventions.
Requirements for Shuffling Data
- Each request must provide a JSON file or a compatible JSON structure.
- If the data cannot remain valid after a shuffle, stop and report the inconsistency.
- Observe the default state when no overrides are supplied.
Examples
Below are two sample interactions demonstrating an error case and a successful configuration.
Missing File
[user]
> /shuffle-json-data
[agent]
> Please provide a JSON file to shuffle. Preferably as chat variable or attached context.
Custom Configuration
[user]
> /shuffle-json-data #file:funFacts.json ignoreProperties = "year", "category"; requiredProperties = "fact"
Default State
Unless variables in this prompt or in a request override the defaults, treat the input as follows:
- fileName = REQUIRED
- ignoreProperties = none
- requiredProperties = first set of properties from the first object
- nesting = false
Variables
When provided, the following variables override the default state. Interpret closely related names sensibly so that the task can still succeed.
- ignoreProperties
- requiredProperties
- nesting
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
javascript-typescript-jest
Best practices for writing JavaScript/TypeScript tests using Jest, including mocking strategies, test structure, and common patterns.
create-github-action-workflow-specification
Create a formal specification for an existing GitHub Actions CI/CD workflow, optimized for AI consumption and workflow maintenance.
update-avm-modules-in-bicep
Update Azure Verified Modules (AVM) to latest versions in Bicep files.
gtm-technical-product-pricing
Pricing strategy for technical products. Use when choosing usage-based vs seat-based, designing freemium thresholds, structuring enterprise pricing conversations, deciding when to raise prices, or using price as a positioning signal.
power-bi-dax-optimization
Comprehensive Power BI DAX formula optimization prompt for improving performance, readability, and maintainability of DAX calculations.
review-and-refactor
Review and refactor code in your project according to defined instructions
Didn't find tool you were looking for?