{"data":{"skill":{"slug":"internet-court-genvm-lint","name":"genvm-lint","icon":"📦","repo":"https://github.com/internet-court/internet-court-skill/tree/main/vendored/genlayer/genvm-lint","status":"approved","author":"internet-court","authorVersion":null,"skillstoreRevision":1},"audit":{"id":"82390bc6-ec87-4057-a480-56f33dbb881c","skill_id":"7078c670-feca-496e-bcd7-8a1e60938c19","version":2,"content_hash":"v3:3f6e026a3363e0954ede7bef0cfe88d4475de137:e462f90f8788a86e7827da3ecb7a73456507577dfcceaf3495c4def4c024a2b2:c658719e80de36b68db66a6a56b4b922ad0e60e3b15baf71a246c2badf95a255:736b696c6c732f696e7465726e65742d636f7572742f67656e766d2d6c696e74:36f1d992d14a207d5f7ae61754a88b2a","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All 34 external-command findings are false positives caused by Markdown backticks and examples of fixed linter commands. The system-reconnaissance finding is also a false positive because it only describes contract storage validation. No prompt injection, credential access, data exfiltration, or malicious intent was found in the reviewed files.","remediation":[{"issue":"The setup instructions install a package by name without a version pin.","severity":"low","suggestion":"Document a supported pinned version or a trusted lockfile workflow for genvm-linter."},{"issue":"The download command can fetch GenVM artifacts without documenting their source or integrity checks.","severity":"low","suggestion":"Document the artifact source, version selection, and checksum or signature verification when available."}],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":15,"line_start":15},{"file":"SKILL.md","line_end":19,"line_start":17},{"file":"SKILL.md","line_end":23,"line_start":19},{"file":"SKILL.md","line_end":25,"line_start":23},{"file":"SKILL.md","line_end":27,"line_start":25},{"file":"SKILL.md","line_end":29,"line_start":27},{"file":"SKILL.md","line_end":34,"line_start":29},{"file":"SKILL.md","line_end":37,"line_start":34},{"file":"SKILL.md","line_end":40,"line_start":37},{"file":"SKILL.md","line_end":42,"line_start":40},{"file":"SKILL.md","line_end":45,"line_start":42},{"file":"SKILL.md","line_end":45,"line_start":45},{"file":"SKILL.md","line_end":50,"line_start":46},{"file":"SKILL.md","line_end":52,"line_start":50},{"file":"SKILL.md","line_end":55,"line_start":52},{"file":"SKILL.md","line_end":55,"line_start":55},{"file":"SKILL.md","line_end":56,"line_start":56},{"file":"SKILL.md","line_end":57,"line_start":57},{"file":"SKILL.md","line_end":65,"line_start":61},{"file":"SKILL.md","line_end":68,"line_start":65},{"file":"SKILL.md","line_end":72,"line_start":68},{"file":"SKILL.md","line_end":77,"line_start":72},{"file":"SKILL.md","line_end":81,"line_start":77},{"file":"SKILL.md","line_end":86,"line_start":81},{"file":"SKILL.md","line_end":91,"line_start":86},{"file":"SKILL.md","line_end":93,"line_start":91},{"file":"SKILL.md","line_end":94,"line_start":93},{"file":"SKILL.md","line_end":96,"line_start":94},{"file":"SKILL.md","line_end":100,"line_start":96},{"file":"SKILL.md","line_end":101,"line_start":100},{"file":"SKILL.md","line_end":102,"line_start":101},{"file":"SKILL.md","line_end":103,"line_start":102},{"file":"SKILL.md","line_end":108,"line_start":103},{"file":"SKILL.md","line_end":111,"line_start":108}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":2,"total_lines":119,"audit_model":"claude","audited_at":"2026-07-21T03:17:26.103+00:00","created_at":"2026-07-21T03:31:16.364214+00:00","static_findings":[{"id":"external_commands:SKILL.md:15:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Requires `genvm-linter` (included in `requirements.txt` for boilerplate projects):","category":"external_commands","line_end":15,"severity":"medium","line_start":15},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":19,"severity":"medium","line_start":17},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":23,"severity":"medium","line_start":19},{"id":"external_commands:SKILL.md:23:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Always lint before testing.** Run `genvm-lint check` after writing or modifying a contract. Fix al","category":"external_commands","line_end":25,"severity":"medium","line_start":23},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":27,"severity":"medium","line_start":25},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":29,"severity":"medium","line_start":27},{"id":"external_commands:SKILL.md:29:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`check` runs both lint (AST safety) and validate (SDK semantics) in one pass.","category":"external_commands","line_end":34,"severity":"medium","line_start":29},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":37,"severity":"medium","line_start":34},{"id":"external_commands:SKILL.md:37:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":40,"severity":"medium","line_start":37},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":42,"severity":"medium","line_start":40},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":45,"severity":"medium","line_start":42},{"id":"external_commands:SKILL.md:45:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Forbidden imports (`os`, `sys`, `subprocess`, `random`, etc.)","category":"external_commands","line_end":45,"severity":"medium","line_start":45},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Non-deterministic patterns (bare `float` usage)","category":"external_commands","line_end":50,"severity":"medium","line_start":46},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":52,"severity":"medium","line_start":50},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":55,"severity":"medium","line_start":52},{"id":"external_commands:SKILL.md:55:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Types exist in SDK (`TreeMap`, `DynArray`, `Address`, etc.)","category":"external_commands","line_end":55,"severity":"medium","line_start":55},{"id":"external_commands:SKILL.md:56:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Decorators correctly applied (`@gl.public.view`, `@gl.public.write`)","category":"external_commands","line_end":56,"severity":"medium","line_start":56},{"id":"external_commands:SKILL.md:57:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Storage fields have valid types (no `dict`/`list`)","category":"external_commands","line_end":57,"severity":"medium","line_start":57},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":65,"severity":"medium","line_start":61},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":68,"severity":"medium","line_start":65},{"id":"external_commands:SKILL.md:68:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":72,"severity":"medium","line_start":68},{"id":"external_commands:SKILL.md:72:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":77,"severity":"medium","line_start":72},{"id":"external_commands:SKILL.md:77:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":81,"severity":"medium","line_start":77},{"id":"external_commands:SKILL.md:81:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":86,"severity":"medium","line_start":81},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":91,"severity":"medium","line_start":86},{"id":"external_commands:SKILL.md:91:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":93,"severity":"medium","line_start":91},{"id":"external_commands:SKILL.md:93:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"### JSON (`--json`)","category":"external_commands","line_end":94,"severity":"medium","line_start":93},{"id":"external_commands:SKILL.md:94:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```json","category":"external_commands","line_end":96,"severity":"medium","line_start":94},{"id":"external_commands:SKILL.md:96:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":100,"severity":"medium","line_start":96},{"id":"external_commands:SKILL.md:100:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `0` — All checks passed","category":"external_commands","line_end":101,"severity":"medium","line_start":100},{"id":"external_commands:SKILL.md:101:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `1` — Lint or validation errors found","category":"external_commands","line_end":102,"severity":"medium","line_start":101},{"id":"external_commands:SKILL.md:102:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `2` — Contract file not found","category":"external_commands","line_end":103,"severity":"medium","line_start":102},{"id":"external_commands:SKILL.md:103:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `3` — SDK download failed","category":"external_commands","line_end":108,"severity":"medium","line_start":103},{"id":"external_commands:SKILL.md:108:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"1. Run `genvm-lint check contract.py --json`","category":"external_commands","line_end":111,"severity":"medium","line_start":108},{"id":"blocker:SKILL.md:57:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"- Storage fields have valid types (no `dict`/`list`)","category":"blocker","line_end":57,"severity":"low","line_start":57}],"finding_verdicts":[{"id":"external_commands:SKILL.md:15:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:23:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:29:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:37:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:45:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:55:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:56:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:57:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:68:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:72:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:77:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:81:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:91:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:93:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:94:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:96:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:100:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:101:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:102:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:103:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:108:ruby-shell-backtick-execution","reason":"This is documentation markup or a fixed GenVM linter command, not executable Ruby or shell code in the skill. No interpolation, command construction, or untrusted command execution is present.","verdict":"false_positive","confidence":0.98},{"id":"blocker:SKILL.md:57:system-reconnaissance","reason":"The text only identifies disallowed dict and list storage types. It does not collect host, network, user, or environment information.","verdict":"false_positive","confidence":0.98}],"semantic_findings":[],"subject_marketplace_commit_sha":"3f6e026a3363e0954ede7bef0cfe88d4475de137","subject_content_hash":"e462f90f8788a86e7827da3ecb7a73456507577dfcceaf3495c4def4c024a2b2","subject_tree_hash":"c658719e80de36b68db66a6a56b4b922ad0e60e3b15baf71a246c2badf95a255","subject_plugin_path":"skills/internet-court/genvm-lint","audit_payload_hash":"36f1d992d14a207d5f7ae61754a88b2a","confirmed_risk_level":"safe","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"3f6e026a3363e0954ede7bef0cfe88d4475de137","contentHash":"e462f90f8788a86e7827da3ecb7a73456507577dfcceaf3495c4def4c024a2b2","treeHash":"c658719e80de36b68db66a6a56b4b922ad0e60e3b15baf71a246c2badf95a255","pluginPath":"skills/internet-court/genvm-lint","auditPayloadHash":"36f1d992d14a207d5f7ae61754a88b2a"},"scannerVersion":"3.0.0","policyVersion":"skillstore-security-audit-policy-v1"},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"unavailable","url":null,"status":null},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"safe","confirmedFindingCount":0,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"unavailable","verificationState":"not_verified"},"isLatest":true}}