Genvm lint
Skill internet-court/internet-court-skill/vendored/genlayer/genvm-lint
Validate GenLayer intelligent contracts with the GenVM linter.From its SKILL.md
npx -y skills add internet-court/internet-court-skill --skill genvm-lintAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
2.7 KB, 707 tokens by cl100k_base, as published. Nobody here has run it
GenVM Lint
Validate intelligent contracts for safety, correctness, and SDK compliance.
Setup
Requires genvm-linter (included in requirements.txt for boilerplate projects):
pip install genvm-linter
Workflow
Always lint before testing. Run genvm-lint check after writing or modifying a contract. Fix all errors before running tests.
genvm-lint check contracts/my_contract.py
check runs both lint (AST safety) and validate (SDK semantics) in one pass.
Commands
check (recommended)
genvm-lint check contracts/my_contract.py
genvm-lint check contracts/my_contract.py --json # Machine-readable output
lint (fast AST checks only, ~50ms)
genvm-lint lint contracts/my_contract.py
Catches:
- Forbidden imports (
os,sys,subprocess,random, etc.) - Non-deterministic patterns (bare
floatusage) - Contract header structure issues
validate (SDK semantic checks, ~200ms)
genvm-lint validate contracts/my_contract.py
Validates:
- Types exist in SDK (
TreeMap,DynArray,Address, etc.) - Decorators correctly applied (
@gl.public.view,@gl.public.write) - Storage fields have valid types (no
dict/list) - Method signatures correct
schema (extract ABI)
genvm-lint schema contracts/my_contract.py
genvm-lint schema contracts/my_contract.py --json
genvm-lint schema contracts/my_contract.py --output abi.json
typecheck (Pyright/Pylance)
genvm-lint typecheck contracts/my_contract.py
genvm-lint typecheck contracts/my_contract.py --json
genvm-lint typecheck contracts/my_contract.py --strict
Runs Pyright with SDK paths auto-configured. Catches type mismatches, missing attributes, undefined variables.
download (pre-download GenVM artifacts)
genvm-lint download # Latest
genvm-lint download --version v0.2.12 # Specific
genvm-lint download --list # Show cached
Output Formats
Human (default)
✓ Lint passed (3 checks)
✓ Validation passed
Contract: MyContract
Methods: 8 (5 view, 3 write)
JSON (--json)
{"ok":true,"lint":{"ok":true,"passed":3},"validate":{"ok":true,"contract":"MyContract","methods":8,"view_methods":5,"write_methods":3,"ctor_params":2}}
Exit Codes
0— All checks passed1— Lint or validation errors found2— Contract file not found3— SDK download failed
Agent Workflow
When fixing lint errors iteratively:
- Run
genvm-lint check contract.py --json - Parse JSON for specific errors
- Fix each error in the contract
- Re-run check until
"ok": true - Proceed to tests
What ships with it: 2 files
1.2 KB alongside SKILL.md
agents/
- openai.yaml205 B
- LICENSE1.0 KB