Skip to main content
ClaudeWave
Skill5.3k repo starsupdated 17d ago

fulfill-git-escrow

Fulfill a git escrow bounty by writing a solution or submitting an existing one. Use when the user wants to solve a test suite challenge, write code to pass tests, and claim a token reward. Requires the git-escrows CLI (npm i -g git-escrows).

Install in Claude Code
Copy
git clone --depth 1 https://github.com/internet-court/internet-court-skill /tmp/fulfill-git-escrow && cp -r /tmp/fulfill-git-escrow/vendored/arkhai/fulfill-git-escrow ~/.claude/skills/fulfill-git-escrow
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Fulfill Git Escrow

You are helping the user fulfill a git escrow bounty. This means submitting code that passes a failing test suite to claim the escrowed token reward.

There are two modes:
- **Mode A (Write + Submit)**: You write the solution code, commit it, and submit. This is the default when no `--solution-repo` is provided by the user.
- **Mode B (Submit Existing)**: The user already has a solution repo and commit. You just submit the fulfillment.

Determine the mode from the user's input:
- If they provide `--solution-repo`, use **Mode B**.
- Otherwise, use **Mode A**.

The escrow UID is always required.

## Step 1: Check CLI availability

Run `git-escrows --help` to verify the CLI is installed. If it fails, try `npx git-escrows --help` or `bunx git-escrows --help`. Use whichever works for all subsequent commands. If none work, tell the user to install with `npm i -g git-escrows`.

## Step 2: Check .env configuration

Check if a `.env` file exists in the current directory. If not, tell the user they need one and suggest running:
```
git-escrows new-client --privateKey "0x..." --network "sepolia"
```

## Step 3: Validate the escrow

Run `git-escrows list --verbose --format json` and find the escrow matching the provided UID. Confirm:
- The escrow exists and is **open**
- Note the test repo URL, test commit hash, reward amount, and oracle address

If no escrow UID was provided, ask the user for one. You can help them browse with `git-escrows list --status open`.

## Mode A: Write Solution + Submit

### A1: Understand the tests

Clone or read the test repository to understand what the tests expect:
1. Identify the test repo URL and commit from the escrow details
2. Clone it to a temporary location: `git clone <url> /tmp/escrow-tests-<uid> && cd /tmp/escrow-tests-<uid> && git checkout <commit>`
3. Read the test files to understand:
   - What functions/modules/APIs the tests import
   - What behavior they assert
   - What test framework is used
   - The project structure expected

### A2: Write the solution

In the **current working directory** (or a subdirectory the user specifies):
1. Create/modify files to implement the code that will make the tests pass
2. Follow the project structure the tests expect (e.g., if tests import from `src/math.ts`, create that file)
3. Include any necessary config files (package.json, Cargo.toml, etc.)
4. Ensure the test framework's dependencies are accounted for

### A3: Commit and get repo details

1. Stage and commit the solution: `git add -A && git commit -m "solution for escrow <uid>"`
2. Get the commit hash: `git rev-parse HEAD`
3. Get the remote URL: `git remote get-url origin`
   - If no remote exists, ask the user to push to a public git repo and provide the URL

### A4: Submit the fulfillment

```
git-escrows fulfill \
  --escrow-uid "<uid>" \
  --solution-repo "<repo-url>" \
  --solution-commit "<commit-hash>"
```

## Mode B: Submit Existing Solution

### B1: Gather parameters

From the user's input, extract:
- `--solution-repo`: The git repo URL with the solution
- `--solution-commit`: The commit hash of the solution

If either is missing, ask the user.

### B2: Submit the fulfillment

```
git-escrows fulfill \
  --escrow-uid "<uid>" \
  --solution-repo "<repo-url>" \
  --solution-commit "<commit-hash>"
```

## Step 4: Report results (both modes)

After successful execution:
- Report the **Fulfillment UID** prominently
- Explain that the oracle will now automatically test the solution
- Provide the collect command for after arbitration passes:
  ```
  git-escrows collect --escrow-uid <escrow-uid> --fulfillment-uid <fulfillment-uid>
  ```
- Suggest checking status with: `git-escrows list --verbose`

If the command fails, help diagnose the issue (escrow already fulfilled, wrong network, key not registered, etc.). If the user's git key isn't registered, suggest `git-escrows register-key`.
internet-courtSkill

Entry point for Internet Court — the trust layer for agent-to-agent commerce. Use whenever an agent needs to transact with another agent or a paid service, or a user mentions agent payments, paid APIs (HTTP 402/x402), wallet custody or trust concerns, spending mandates, delegated permissions (ERC-7710/7715), escrow, agent identity or reputation (ERC-8004), negotiation between agents (A2A), agent jobs (ERC-8183), machine payments (MPP, AP2), supervision of agent behavior, revocation, verification, or dispute resolution (GenLayer) — even if they never say "Internet Court". Routes to the vendored protocol skills and connector skills in this package.

genlayer-erc7710-connectorSkill

Connect GenLayer Intelligent Contract decisions to ERC-7710-style delegated authority. Use when an agent needs to design the interface, message schema, relayer/bridge path, EVM revocation controller, constraint updates, proof/finality assumptions, and failure handling that turn a GenLayer agent-performance review into ERC-7710 revocation or policy changes.

genlayer-intelligent-contractsSkill

Internet Court adapter for GenLayer Intelligent Contract supervision. Use to specify agent-performance rubrics, evidence schemas, decision outputs, and ERC-7710 connector expectations, while delegating actual GenLayer contract writing, linting, testing, deployment, and CLI interaction to the official GenLayer skills at https://skills.genlayer.com/.

x402-erc7710Skill

Design and implement demos combining x402 HTTP payments with ERC-7710 smart contract delegations and ERC-7715 wallet permission requests for subscriptions, bounded agent budgets, recurring spend, pay-per-use APIs, and agentic commerce.

0g-computeSkill

0G Compute Network guide for decentralized AI inference, fine-tuning, and GPU services. Covers chatbots, image generation, speech-to-text, SDK integration (0g-serving-broker), processResponse API, broker.inference methods, CLI commands (0g-compute-cli), and account management. Use this skill for any 0G compute, 0G AI, or decentralized GPU question.

altllm-portal-api-keysSkill

Use this skill when the user asks to list, create, inspect, update, disable, re-enable, or revoke AltLLM Portal API keys for external agents or applications. Do NOT use for wallet login, billing history, or payment links.

altllm-portal-authSkill

Use this skill when the user asks to log in or out with a wallet session, fetch a wallet sign-in challenge, verify an externally signed challenge, or troubleshoot AltLLM Portal wallet login for the local altllm CLI. Do NOT use for API key management, billing history, or payment links.

altllm-portal-billingSkill

Use this skill when the user asks to inspect AltLLM Portal balance, redeem a promo code, review billing transactions, or view usage analytics by period, model, or API key using the local altllm CLI. Do NOT use for API key lifecycle management or payment-link execution.