{"id":"precedence-order-check","version":"1.0.0","description":"Check whether a claimed node order is exactly a precedence-respecting linear extension of a caller-supplied DAG.","supported_operations":["check claimed topological order","verify linear extension certificate","audit serialized task ordering","find first ordering edge violation","validate dependency sequence permutation","check ordered DAG execution plan"],"unsupported_operations":["compute or repair a claimed result","infer dependencies from prose","accept cyclic dependency graphs"],"semantics":["nodes and identifiers use exact Unicode scalar-value string equality; no normalization or trimming; null is never an identifier.","nodes must be unique, every edge endpoint must be declared, self-edges and cyclic graphs are invalid_input.","A well-typed claim is valid only if it contains every source node exactly once and satisfies the tool-specific precedence rule.","Claims are never repaired; the first issue is reported by claim index, then source node order, then source edge order.","Duplicate edges are allowed and have identical semantics to one edge.","Any permutation satisfying every edge is accepted; unrelated-node tie order is unrestricted.","Every output names reference_version Kahn-1962-topological-order-and-poset-linear-extension."],"limits":{"max_nodes":5000,"max_edges":20000,"max_id_bytes":128,"max_input_bytes":1000000},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["nodes","edges","order"],"properties":{"nodes":{"type":"array","maxItems":5000,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":128}},"edges":{"type":"array","maxItems":20000,"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"string","minLength":1,"maxLength":128}}},"order":{"type":"array","maxItems":5000,"items":{"type":"string","minLength":1,"maxLength":128}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["valid","reference_version"],"properties":{"valid":{"type":"boolean"},"reason":{"type":"string"},"discrepancy":{"type":"object","additionalProperties":false,"required":["path","reason"],"properties":{"path":{"type":"string"},"reason":{"type":"string"},"expected":{},"actual":{}}},"reference_version":{"type":"string","const":"Kahn-1962-topological-order-and-poset-linear-extension"}}},"examples":[{"input":{"nodes":["compile","test","ship"],"edges":[["compile","test"],["test","ship"]],"order":["compile","test","ship"]},"output":{"valid":true,"reference_version":"Kahn-1962-topological-order-and-poset-linear-extension"}},{"input":{"nodes":["a","b"],"edges":[["a","b"]],"order":["b","a"]},"output":{"valid":false,"reason":"precedence_violation","discrepancy":{"path":"edges[0]","reason":"precedence_violation","expected":"a before b","actual":"a at 1, b at 0"},"reference_version":"Kahn-1962-topological-order-and-poset-linear-extension"}}],"execute_url":"/v1/tools/precedence-order-check/versions/1.0.0/execute"}