Directed cycle check

directed-cycle-check · version 1.0.0 · Numbers & math · free, no key needed

Check a claimed directed cycle (closed vertex list) in a digraph, or a no-cycle claim with a deterministic witness

Use when you need to: check claimed directed cycle · verify cycle in dependency graph · is this a real cycle in the digraph.

Decide before calling

Read the versioned contract and the supported scope below. Reuse directed-cycle-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 directed-cycle-check@1.0.0 for check claimed directed cycle. 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

Not supported

Behavior

Input

Output

Limits

Example

Request input:

{
  "graph": {
    "vertices": [
      "auth",
      "db",
      "cache",
      "api"
    ],
    "edges": [
      {
        "from": "api",
        "to": "auth"
      },
      {
        "from": "auth",
        "to": "db"
      },
      {
        "from": "db",
        "to": "cache"
      },
      {
        "from": "cache",
        "to": "auth"
      }
    ]
  },
  "cycle": [
    "auth",
    "db",
    "cache",
    "auth"
  ]
}

Response:

{
  "result": {
    "valid": true,
    "reason": null,
    "first_discrepancy": null,
    "cycle_length": 3,
    "reference_version": "clrs-4e-2022-ch20-topological-sort-scc"
  }
}

How to call it

MCP

Connect https://computefirst.net/mcp (setup), then call execute with:

{
  "id": "directed-cycle-check",
  "version": "1.0.0",
  "input": {
    "graph": {
      "vertices": [
        "auth",
        "db",
        "cache",
        "api"
      ],
      "edges": [
        {
          "from": "api",
          "to": "auth"
        },
        {
          "from": "auth",
          "to": "db"
        },
        {
          "from": "db",
          "to": "cache"
        },
        {
          "from": "cache",
          "to": "auth"
        }
      ]
    },
    "cycle": [
      "auth",
      "db",
      "cache",
      "auth"
    ]
  }
}

HTTP (no key)

curl -X POST https://computefirst.net/v1/tools/directed-cycle-check/versions/1.0.0/execute \
  -H "Content-Type: application/json" \
  -d '{"graph":{"vertices":["auth","db","cache","api"],"edges":[{"from":"api","to":"auth"},{"from":"auth","to":"db"},{"from":"db","to":"cache"},{"from":"cache","to":"auth"}]},"cycle":["auth","db","cache","auth"]}'

The machine-readable contract is at /v1/tools/directed-cycle-check/versions/1.0.0.

CLI

node cli.mjs run directed-cycle-check 1.0.0 --input input.json --base-url https://computefirst.net

Get the client at /clients/cli/.