kleros-skills

kleros-skills

OtherClaude Codeby Kleros

Summary

Kleros ecosystem skills — IPFS uploads via x402 gateway, Curate token-curated registries (Light Curate, Stake Curate, Scout).

Install to Claude Code

/plugin install kleros-skills@kleros-skills

Run in Claude Code. Add the marketplace first with /plugin marketplace add kleros/kleros-skills if you haven't already.

README.md

Kleros Skills

Knowledge base for AI agents working with Kleros — the decentralized justice protocol.

Adapted from ethskills, credits to @austintgriffith

Install

Claude Code:

/plugin marketplace add kleros/kleros-skills
/plugin install kleros-ipfs-upload@kleros-skills

OpenClaw:

clawhub install kleros-skills

Codex: Create AGENTS.md in your repo root with:

Read https://skills.kleros.io/SKILL.md and follow it before interacting with Kleros protocol.

Any agent: Paste the prompt Read https://skills.kleros.io/SKILL.md or curl -s https://skills.kleros.io/SKILL.md.

Skills included

  • kleros-ipfs-upload — Upload files to IPFS via the Kleros x402 gateway on Base mainnet ($0.01 USDC per upload). For dispute evidence, meta-evidence JSON, court policies, Curate item metadata, and juror justifications.
  • kleros-curate — Operate Kleros Curate token-curated registries: Light Curate, Stake Curate (PGTCR), and Scout on Ethereum and Gnosis. Submit items, challenge requests, fund appeals, deploy new lists.

Project structure

SKILL.md                    # Top-level entry point / router (also served as /llms.txt)
index.html                  # Landing page (deployed on Netlify)
kleros-ipfs-upload/         # Published skill — IPFS uploads via x402
kleros-curate/              # Published skill — Curate token-curated registries (Light Curate, Stake Curate, Scout)
openclaw-skill/             # OpenClaw-compatible skill package
.claude-plugin/             # Claude Code plugin manifest
  plugin.json               # Plugin definition (version source of truth)
  marketplace.json           # Catalog index

Development

npm install
npm test

Landing page: npx serve . then open http://localhost:3000.

Branch model

This repo uses a two-branch model to keep end-user plugin installs lean.

Why: claude plugin marketplace add and clawhub install clone the entire git repository to user machines (twice — once for the marketplace mirror, once for the version-pinned cache). Everything committed ships to every user. Without this split, dozens of planning files, tests, and dev-only scripts would land in ~/.claude/plugins/... on every install. There is no native .claudeignore / files field in the plugin spec at the time of writing, so the split is the cleanest way to scope what reaches consumers.

How:

| Branch | Role | What's on it | |--------|------|--------------| | dev | Source of truth — all human work, PRs, planning artefacts, tests, build tooling | Full repo | | master (default) | Consumer-facing — what plugin installs and Netlify serve | dev minus the strip-list |

Strip-list (removed from master): .planning/, test/, scripts/, package.json, yarn.lock, .yarnrc.yml, root FEEDBACK.md, root HANDOVER*.md.

Keep-list (present on both branches): .claude-plugin/, skill dirs, root SKILL.md, index.html, netlify/, .well-known/, sitemap.xml, robots.txt, favicons, LICENSE, README.md, CHANGELOG.md, .github/workflows/.

master is regenerated automatically by .github/workflows/sync-master.yml on release-tag pushes. Direct human pushes to master are discouraged — the workflow will overwrite them on the next sync. Tag protection rules restrict who can create release tags; the sync workflow itself runs under a dedicated kleros-skills-sync GitHub App identity scoped to this repo.

For the full design rationale, security model, and rejected alternatives, see SEED-002 on the dev branch.

Contributing

1. Branch from dev (or fork and branch from your fork's dev) 2. Make your changes 3. Run npm test locally 4. Open a PR targeting dev — never master

Releases (maintainers)

1. Merge release-ready commits into dev 2. Bump the relevant version per the Skill release pattern (skill tags use skillname@vX.Y.Z; whole-repo tags use vX.Y.Z) 3. Tag and push:

   git tag -a "kleros-curate@v1.0.1" -m "release notes here"
   git push origin "kleros-curate@v1.0.1"

4. The sync Action runs:

  • npm test (must pass)
  • npm run update-digests freshness check (must pass)
  • Strips dev-only files
  • Sanity-checks the stripped tree (asserts strip-list absent and keep-list present)
  • Force-pushes the result to master under the kleros-skills-sync[bot] identity

5. master redeploys to Netlify; the new release is live for plugin installs within minutes

If any gate fails, master stays at the previous good state — the tag exists but the release does not reach users until the issue is fixed and a new tag is pushed.

Links

Related plugins

Browse all →