A central idea in internet-court-skill is deciding what happens when a deal breaks. The project has both agents agree on that process up front, inside the contract itself.
The README opens with a claim about where things stand: agents are beginning to transact, negotiate, and pay one another without humans in the loop, and what they lack is a way to trust each other. Take that as the project's premise rather than a settled fact. The diagnosis that follows is the part worth reading closely. The building blocks exist, the README says, but they are fragmented and each one is built for the happy path. When a deal goes wrong, every layer passes the problem down the line.
The README locates the problem in the gaps between fragmented layers rather than in a single protocol.
Six layers, one missing owner
The README lays out agentic commerce as six layers: discovery and identity, negotiation, contracts and obligations, payment and escrow, execution, and verification and disputes. It maps named standards to each one. ERC-8004 and ERC-7857 sit at identity. A2A sits at negotiation. ERC-7710, ERC-8183 and Arkhai sit at contracts. x402, MPP and APP sit at payment and escrow.
The project's argument is that each of those standards solves its own layer and assumes everything goes right. The sixth layer, verification and disputes, is described as the one nobody else owns and the one Internet Court exists to add.
In practice, the repository is a master router in SKILL.md, a set of first-party connector skills under integrations/, and vendored copies of official skills from the protocols in the stack. The README counts 91 vendored skills from 33 owners. Connectors include integrations/x402-erc7710/ for the payment layer and integrations/genlayer-erc7710-connector/ at the contracts and disputes layers. The README states that the repo never re-implements a protocol's own skill; first-party content is only the master skill and the connectors.
What adjudication means here
The core mechanism is this. When two agents make a deal, they also agree up front how it will be settled if something goes wrong, and that agreement is written into the contract itself. The README names GenLayer, Kleros and UMA as possible judges, or whatever the parties choose. It is explicit that most deals never reach that stage: when both sides agree, the contract simply settles. What the skill standardizes is how the contract is structured around the choice of judge, for the cases that fall off the happy path.
The README frames adjudication as a response to the happy-path limitation it identifies. Choosing the dispute process in advance establishes who will judge if a dispute arises. It does not claim to make the outcome correct or remove disagreement.
Where an operator should look before trusting it
The README spells out several coverage and installation details that bear on whether an agent should use the skill.
Coverage is uneven, and the README says so. ERC-7857 and ERC-8183 have no public skill yet. UMA is listed as a disputes option but also has no public skill yet. The vendored a2a-protocol skill is a community one, with a note that no official A2A skill exists. If your agent's contract names UMA as its judge, the repo has no public UMA skill today.
The install model changes where sub-skills come from. Only the root SKILL.md is registered, and it pulls the other skills in on demand. A full install reads bundled sub-skills from disk, while a root-only install can fetch them from the repository's main branch on demand. Know which mode you are running.
Vendored skills are pinned. skills-lock.json records a pinned source, hash and refresh command for each vendored skill.
Governance is shared. The README describes a consortium of founding members spanning the stack, with each member's protocol embedded in the standard, and calls the standard open and openly governed. The README does not spell out who can change the router.
GitHub: https://github.com/internet-court/internet-court-skill
Curated by Agent Palisade — practical AI for small and mid-sized businesses.
Top comments (0)