Assignment feasibility check
assignment-feasibility-check · version 1.0.0 · Numbers & math · free, no key needed
Check whether a claimed item-to-bin assignment is complete, unique, declared, and eligible.
Use when you need to: check assignment feasibility · validate claimed item bin assignment · audit bipartite assignment claim.
Decide before calling
Read the versioned contract and the supported scope below. Reuse assignment-feasibility-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 assignment-feasibility-check@1.0.0 for check assignment feasibility. 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 assignment feasibility
- validate claimed item bin assignment
- audit bipartite assignment claim
- check every item is assigned once
- verify assignment eligibility
- detect missing allocation entries
Not supported
- find an assignment
- optimize assignment cost
Behavior
- Items and bins use exact, case-sensitive string identifiers; duplicate declarations and duplicate eligibility entries are malformed.
- A false claim is reported at the first source item, then source bin, then claim index relevant to the discrepancy; no assignment is repaired or synthesized.
- Null is never an identifier, decimal, array, object, or quota; unknown fields are rejected.
- Reference version: Ahuja-Magnanti-Orlin-Network-Flows-1993-chapter-12.
Input
items(array of object, required): min items 1; max items 2000bins(array of object, required): min items 1; max items 500claim(object, required)
Output
valid(boolean, required)reason(string, required): min length 1discrepancy(object or null, required)reference_version(constant "Ahuja-Magnanti-Orlin-Network-Flows-1993-chapter-12", required)
Limits
- max input bytes: 262144
- max items: 2000
- max bins: 500
- max assignments: 4000
- max eligible bins per item: 500
Example
Request input:
{
"items": [
{
"id": "i1",
"eligible_bins": [
"b1"
]
}
],
"bins": [
{
"id": "b1"
}
],
"claim": {
"assignments": [
{
"item_id": "i1",
"bin_id": "b1"
}
]
}
}
Response:
{
"result": {
"valid": true,
"reason": "claim_exact",
"discrepancy": null,
"reference_version": "Ahuja-Magnanti-Orlin-Network-Flows-1993-chapter-12"
}
}
How to call it
MCP
Connect https://computefirst.net/mcp (setup), then call execute with:
{
"id": "assignment-feasibility-check",
"version": "1.0.0",
"input": {
"items": [
{
"id": "i1",
"eligible_bins": [
"b1"
]
}
],
"bins": [
{
"id": "b1"
}
],
"claim": {
"assignments": [
{
"item_id": "i1",
"bin_id": "b1"
}
]
}
}
}
HTTP (no key)
curl -X POST https://computefirst.net/v1/tools/assignment-feasibility-check/versions/1.0.0/execute \
-H "Content-Type: application/json" \
-d '{"items":[{"id":"i1","eligible_bins":["b1"]}],"bins":[{"id":"b1"}],"claim":{"assignments":[{"item_id":"i1","bin_id":"b1"}]}}'
The machine-readable contract is at /v1/tools/assignment-feasibility-check/versions/1.0.0.
CLI
node cli.mjs run assignment-feasibility-check 1.0.0 --input input.json --base-url https://computefirst.net
Get the client at /clients/cli/.
Related tools
- Capacity allocation check: Check an exact claimed allocation for eligibility and per-bin decimal capacity compliance.
- Network flow feasibility check: Check a claimed s-t flow for capacity bounds and conservation with exact integers; returns the first bad edge or node.
- Quota allocation check: Check an exact claimed allocation for eligibility and per-bin lower and upper quotas.
- Network cut capacity check: Check a claimed s-t cut: source-side membership, the edges crossing it and its capacity, with exact integers.
- Permutation indices check: Check whether claimed indices are exactly one occurrence of every source index, reporting the first discrepancy.
- Spanning tree structure check: Check that claimed edge IDs form a spanning tree of a graph; reports the first missing, repeated or cyclic edge