Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Shuffle repetitive JSON objects safely by validating schema consistency before randomising entries.
.claude/skills/shuffle-json-data/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | — | — |
| case-14 | ✗→✓ | ▲ Improved | — | — |
| case-06 | ✗→✓ | ▲ Improved | — | — |
| case-03 | ✗→✓ | ▲ Improved | — | — |
| case-10 | ✗→✓ | ▲ Improved | — | — |
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.
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.
behavior targets each object.
nested objects while operating in the default state).
variable overrides.
shuffled without producing invalid output.
appear under the Variables header.
properties are required, or which properties must be ignored.
Before shuffling:
default state is in effect.
the data.
When the default behavior is active, acceptable JSON resembles the following pattern:
json[ { "VALID_PROPERTY_NAME-a": "value", "VALID_PROPERTY_NAME-b": "value" }, { "VALID_PROPERTY_NAME-a": "value", "VALID_PROPERTY_NAME-b": "value" } ]
If the default behavior is active, reject files that contain nested objects or inconsistent property names. For example:
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" } ]
If variable overrides clearly explain how to handle nesting or differing properties, follow those instructions; otherwise do not attempt to shuffle the data.
attached. If not, pause and request the data file.
the Variables header or prompt-level overrides.
shuffling is safe in the selected mode.
the default behavior while maintaining JSON validity.
encoding and formatting conventions.
inconsistency.
Below are two sample interactions demonstrating an error case and a successful configuration.
text[user] > /shuffle-json-data [agent] > Please provide a JSON file to shuffle. Preferably as chat variable or attached context.
text[user] > /shuffle-json-data #file:funFacts.json ignoreProperties = "year", "category"; requiredProperties = "fact"
Unless variables in this prompt or in a request override the defaults, treat the input as follows:
When provided, the following variables override the default state. Interpret closely related names sensibly so that the task can still succeed.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-02 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +45 percentage points is the difference between those two pass rates over the 22 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.