{"id":"stable-sort-groups-check","version":"1.0.0","description":"Check claimed equal-key groups for exact key order, membership, and stable source order.","supported_operations":["check stable equal key groups","validate grouped stable sort certificate","check tie group source order","detect first grouping discrepancy","validate sorted equivalence classes","check grouped sorting claim"],"unsupported_operations":["create groups from source data","merge approximately equal keys"],"semantics":["Keys are canonical base-10 integer strings; negative zero is rejected, and null follows every integer.","Each group contains all source indices for one key in ascending source order; groups follow key order, implementing ECMA-262 stability.","Groups are flattened in group/member order and compared to the unique expected grouping; the first path mismatch is returned without repair.","Every verdict names ECMA-262-2026-draft-Array.prototype.sort."],"limits":{"max_items":4096,"max_key_chars":40,"max_group_members":4096},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["source_keys","claimed_groups"],"properties":{"source_keys":{"type":"array","minItems":1,"maxItems":4096,"items":{"type":["string","null"],"maxLength":40,"pattern":"^(0|-?[1-9][0-9]*)$"}},"claimed_groups":{"type":"array","minItems":1,"maxItems":4096,"items":{"type":"array","minItems":1,"maxItems":4096,"items":{"type":"integer","minimum":0,"maximum":4095}}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["valid","reference_version"],"properties":{"valid":{"type":"boolean"},"reason":{"type":"string","minLength":1,"maxLength":80},"discrepancy":{"type":"object","additionalProperties":false,"required":["path","expected","actual"],"properties":{"path":{"type":"string","minLength":1,"maxLength":120},"expected":{},"actual":{}}},"reference_version":{"const":"ECMA-262-2026-draft-Array.prototype.sort"}}},"examples":[{"input":{"source_keys":["2","1","1"],"claimed_groups":[[1,2],[0]]},"output":{"valid":true,"reference_version":"ECMA-262-2026-draft-Array.prototype.sort"}},{"input":{"source_keys":["1","1"],"claimed_groups":[[1,0]]},"output":{"valid":false,"reason":"group_mismatch","discrepancy":{"path":"/claimed_groups/0/0","expected":0,"actual":1},"reference_version":"ECMA-262-2026-draft-Array.prototype.sort"}}],"execute_url":"/v1/tools/stable-sort-groups-check/versions/1.0.0/execute"}