the integration compiler
One verifier. Hundreds of vendors.
Each vendor puts the line between an acknowledgement and an outcome in a different place. You never write that logic. The compiler reads the vendor’s schema, documents, events and sandbox behaviour, and it produces one signed skill. A new vendor is a command, not a project.
$provely skill generate stripe$provely skill generate --openapi ./vendor.yaml
- 1
Ingest
Read the OpenAPI or GraphQL schema, the reference documents, the event catalogue and the SDK types.
- 2
Classify
Mark every operation that changes the world. Infer the lifecycle of each resource it touches.
- 3
Plan the evidence
Find the readback, the event and the independent system that prove the real outcome.
- 4
Synthesise
Write the completion contracts. Add the negative postconditions that catch duplicates.
- 5
Test
Generate the conformance cases. Run them against the vendor sandbox.
- 6
Certify and sign
Score six dimensions. Apply the hard caps. Sign the skill and publish it.
Every skill carries a score across six dimensions. Generated draft at 50, Verified at 75, Official at 90. An undocumented semantic caps the score at 49 and is marked REQUIRES_REVIEW. One known false VERIFIED rejects the skill. The compiler never guesses.
The first three skills
The same pipeline produced all three. It produces the next hundred the same way.
Accepted, sent and delivered are three different promises.
accepted
bounced
delivered
sent
Webhooks arrive at least once and out of order. Arrival order is not the truth.
A Refund record does not prove that money left the merchant.
created
financially_completed
Provely verifies “the refund exists” and “the refund settled” as two separate promises.
A refund object records a request. It does not record a transfer.
created
succeeded
A retry without the first idempotency key makes a second refund. Every positive check still passes.