Which derived artifacts must be rechecked after these inputs changed? (bounded dependency graph)

$0.005 USDC per call · Agent infrastructure · POST /api/v1/artifact-invalidator · Id artifact-invalidator

Given a dependency graph of artifacts (each lists the artifact ids it was derived from) and the ids that changed, returns every artifact that transitively depends on a change, in an order safe to recompute (inputs before dependents), and the artifacts that are unaffected. A cycle or an unknown input id is a defect in the graph and returns fail with the cycle path. Changed ids that are unknown fail too. Does not hash content or recompute anything.

What you get

Rebuild or recheck only what the change can reach, and in the right order.

Call it

Send the JSON body below to https://agents.writerslogic.com/api/v1/artifact-invalidator. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.

curl -i -X POST https://agents.writerslogic.com/api/v1/artifact-invalidator \
  -H 'content-type: application/json' \
  -d '{"artifacts":[{"id":"spec"},{"id":"schema","inputs":["spec"]},{"id":"client","inputs":["schema"]},{"id":"docs","inputs":["spec"]},{"id":"logo"}],"changed":["schema"]}'

Input

FieldTypeRequiredDescription
artifactsarray<object>; max 500 itemsyes
changedarray<string; length 1..200>; max 500 itemsyes

Example request body

{
  "artifacts": [
    {
      "id": "spec"
    },
    {
      "id": "schema",
      "inputs": [
        "spec"
      ]
    },
    {
      "id": "client",
      "inputs": [
        "schema"
      ]
    },
    {
      "id": "docs",
      "inputs": [
        "spec"
      ]
    },
    {
      "id": "logo"
    }
  ],
  "changed": [
    "schema"
  ]
}

Result

The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.

FieldTypeRequiredDescription
statusstring; one of "pass", "fail", "unknown", "unsupported"nopass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass.
stalearray<string>noDependents of the changed artifacts, in recompute order (changed ids themselves are not listed).
unaffectedarray<string>no
recomputeOrderarray<string>noChanged artifacts that are themselves derived, then stale, in dependency order.
witnessesarray<object>no
versionsobjectnoEvery semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile).
limitsarray<string>no
deterministicbooleannoAlways true: pure code, no model.

Pay and connect

Available through: x402 (USDC on Base), MCP. MCP clients reach it through the execution-safety-kit package.

Machine-readable