Candidate key claim check
candidate-key-claim-check · version 1.0.0 · Numbers & math · free, no key needed
Check an exact candidate-key claim, including uniqueness and minimality, under an explicit SQL null policy.
Use when you need to: check claimed candidate key · validate minimal unique key · verify candidate key certificate.
Decide before calling
Read the versioned contract and the supported scope below. Reuse candidate-key-claim-check@1.0.0 when your input, required output and limits match it. Choose another approach for an unsupported operation.
Explain the choice
"I can use candidate-key-claim-check@1.0.0 for check claimed candidate key. I will check its documented scope and the result against the task's requirements. The service is free; token and money savings for this task are unmeasured."
Supported
- check claimed candidate key
- validate minimal unique key
- verify candidate key certificate
- audit key minimality claim
- check composite candidate key
- test candidate key result
Not supported
- modify or repair source rows
- infer columns or null policy
- execute SQL or access a database
Behavior
- Rows are scanned in ascending source index; columns retain caller order.
- Cell equality is type-strict over null, booleans, safe integers other than -0, and Unicode strings by code point sequence.
- A well-typed false claim returns valid false and the first field discrepancy; malformed input throws.
- reference_version identifies ISO/IEC 9075-2:2023 §4.18, §11.8, and §11.9 narrowed by the packet README.
Input
rows(array of object, required): max items 1000columns(array of string, required): min items 1; max items 16; each min length 1; each max length 1024null_policy(one of "nulls_distinct", "nulls_equal", "reject", required)claim(object, required)
Output
valid(boolean, required)reason(string, required)discrepancy(null or object, required)reference_version(constant "ISO/IEC 9075-2:2023 §4.18, §11.8, §11.9 (narrowed profile)", required)
Limits
- max input bytes: 262144
- max rows: 1000
- max columns: 16
- max cell string bytes: 1024
Example
Request input:
{
"rows": [
{
"a": 1,
"b": "x"
},
{
"a": 2,
"b": "x"
}
],
"columns": [
"a",
"b"
],
"null_policy": "nulls_equal",
"claim": {
"candidate_key": false,
"evidence": {
"kind": "removable_column",
"index": 1
}
}
}
Response:
{
"result": {
"valid": true,
"reason": "claim_exact",
"discrepancy": null,
"reference_version": "ISO/IEC 9075-2:2023 §4.18, §11.8, §11.9 (narrowed profile)"
}
}
How to call it
MCP
Connect https://computefirst.net/mcp (setup), then call execute with:
{
"id": "candidate-key-claim-check",
"version": "1.0.0",
"input": {
"rows": [
{
"a": 1,
"b": "x"
},
{
"a": 2,
"b": "x"
}
],
"columns": [
"a",
"b"
],
"null_policy": "nulls_equal",
"claim": {
"candidate_key": false,
"evidence": {
"kind": "removable_column",
"index": 1
}
}
}
}
HTTP (no key)
curl -X POST https://computefirst.net/v1/tools/candidate-key-claim-check/versions/1.0.0/execute \
-H "Content-Type: application/json" \
-d '{"rows":[{"a":1,"b":"x"},{"a":2,"b":"x"}],"columns":["a","b"],"null_policy":"nulls_equal","claim":{"candidate_key":false,"evidence":{"kind":"removable_column","index":1}}}'
The machine-readable contract is at /v1/tools/candidate-key-claim-check/versions/1.0.0.
CLI
node cli.mjs run candidate-key-claim-check 1.0.0 --input input.json --base-url https://computefirst.net
Get the client at /clients/cli/.
Related tools
- Unique key claim check: Check an exact uniqueness claim and first-duplicate certificate under an explicit SQL null policy.
- Foreign key claim check: Check an exact referential-inclusion claim and first violation under an explicit composite-null policy.
- Dedupe first check: Check an exact first-wins SameValueZero deduplication claim and report its first discrepancy.
- Dedupe keyed check: Check an exact keyed Map deduplication claim and report its first discrepancy.
- Dedupe last check: Check an exact last-wins SameValueZero deduplication claim and report its first discrepancy.
- Join inner result check: Check a claimed ordered inner join index result and report its first discrepancy.