{"data":{"skill":{"slug":"internet-court-integration-tests","name":"integration-tests","icon":"📦","repo":"https://github.com/internet-court/internet-court-skill/tree/main/vendored/genlayer/integration-tests","status":"approved","author":"internet-court","authorVersion":null,"skillstoreRevision":1},"audit":{"id":"1e567ee0-ef19-49c3-9401-1cd5f1987c6e","skill_id":"982f7af0-410a-49e2-ae33-0555ec8ef521","version":2,"content_hash":"v3:3f6e026a3363e0954ede7bef0cfe88d4475de137:d8a3afd9c89176c713d070dfb502db9f1cf417f150f9e8a3694ba697026cbee8:5d80a90ad41c0c2b443bd040576adbad19450e35107b8d453827a6fca31625c8:736b696c6c732f696e7465726e65742d636f7572742f696e746567726174696f6e2d7465737473:d20e4380efe99b9f2e7eda42cd367092","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All 25 external-command findings are false positives caused by Markdown fences and inline code formatting in SKILL.md. The two private-key findings document environment-variable configuration for testnet accounts and show no secret access or exfiltration. No prompt injection, malicious intent, or additional semantic security issue was found.","remediation":[{"issue":"Testnet configuration requires private-key environment variables.","severity":"low","suggestion":"Use dedicated, low-value testnet accounts and keep private keys in local secret storage. Never commit a populated configuration file or key value."},{"issue":"Integration tests can target hosted or real network environments.","severity":"low","suggestion":"Run untrusted contracts on GLSim or local Studio first, confirm the target network, and apply rate limits before using shared services or testnet."}],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":25,"line_start":17},{"file":"SKILL.md","line_end":27,"line_start":25},{"file":"SKILL.md","line_end":31,"line_start":27},{"file":"SKILL.md","line_end":46,"line_start":31},{"file":"SKILL.md","line_end":48,"line_start":46},{"file":"SKILL.md","line_end":48,"line_start":48},{"file":"SKILL.md","line_end":64,"line_start":53},{"file":"SKILL.md","line_end":65,"line_start":64},{"file":"SKILL.md","line_end":65,"line_start":65},{"file":"SKILL.md","line_end":74,"line_start":70},{"file":"SKILL.md","line_end":77,"line_start":74},{"file":"SKILL.md","line_end":80,"line_start":77},{"file":"SKILL.md","line_end":84,"line_start":80},{"file":"SKILL.md","line_end":96,"line_start":84},{"file":"SKILL.md","line_end":100,"line_start":96},{"file":"SKILL.md","line_end":107,"line_start":100},{"file":"SKILL.md","line_end":111,"line_start":107},{"file":"SKILL.md","line_end":111,"line_start":111},{"file":"SKILL.md","line_end":128,"line_start":112},{"file":"SKILL.md","line_end":132,"line_start":128},{"file":"SKILL.md","line_end":134,"line_start":132},{"file":"SKILL.md","line_end":138,"line_start":134},{"file":"SKILL.md","line_end":140,"line_start":138},{"file":"SKILL.md","line_end":143,"line_start":140},{"file":"SKILL.md","line_end":143,"line_start":143}]},{"factor":"env_access","evidence":[{"file":"SKILL.md","line_end":94,"line_start":94},{"file":"SKILL.md","line_end":95,"line_start":95}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":2,"total_lines":152,"audit_model":"claude","audited_at":"2026-07-21T03:20:23.73+00:00","created_at":"2026-07-21T03:31:17.51888+00:00","static_findings":[{"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":25,"severity":"medium","line_start":17},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","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":"Always use `-v -s` for visible output during development.","category":"external_commands","line_end":31,"severity":"medium","line_start":27},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```python","category":"external_commands","line_end":46,"severity":"medium","line_start":31},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":48,"severity":"medium","line_start":46},{"id":"external_commands:SKILL.md:48:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`ACCEPTED` and `FINALIZED` are transaction lifecycle states, not proof that","category":"external_commands","line_end":48,"severity":"medium","line_start":48},{"id":"external_commands:SKILL.md:53:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Always assert `tx_execution_succeeded(receipt)` before reading state, checking","category":"external_commands","line_end":64,"severity":"medium","line_start":53},{"id":"external_commands:SKILL.md:64:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Read methods | Return values directly | Use `.call()` |","category":"external_commands","line_end":65,"severity":"medium","line_start":64},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Mocking | `mock_web()` / `mock_llm()` | Real web/LLM calls |","category":"external_commands","line_end":65,"severity":"medium","line_start":65},{"id":"external_commands:SKILL.md:70:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```python","category":"external_commands","line_end":74,"severity":"medium","line_start":70},{"id":"external_commands:SKILL.md:74:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":77,"severity":"medium","line_start":74},{"id":"external_commands:SKILL.md:77:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```python","category":"external_commands","line_end":80,"severity":"medium","line_start":77},{"id":"external_commands:SKILL.md:80:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":84,"severity":"medium","line_start":80},{"id":"external_commands:SKILL.md:84:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```yaml","category":"external_commands","line_end":96,"severity":"medium","line_start":84},{"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":"```python","category":"external_commands","line_end":107,"severity":"medium","line_start":100},{"id":"external_commands:SKILL.md:107:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":111,"severity":"medium","line_start":107},{"id":"external_commands:SKILL.md:111:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **GLSim** (`pip install genlayer-test[sim]`, `glsim --port 4000 --validators 5`) — lightweight, no","category":"external_commands","line_end":111,"severity":"medium","line_start":111},{"id":"external_commands:SKILL.md:112:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Studio local** (`genlayer up`) — full GenVM, real consensus, Docker required. Validates runtime ","category":"external_commands","line_end":128,"severity":"medium","line_start":112},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Clear cache: `rm -rf .gltest_cache`","category":"external_commands","line_end":132,"severity":"medium","line_start":128},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":134,"severity":"medium","line_start":132},{"id":"external_commands:SKILL.md:134:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":138,"severity":"medium","line_start":134},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```python","category":"external_commands","line_end":140,"severity":"medium","line_start":138},{"id":"external_commands:SKILL.md:140:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":143,"severity":"medium","line_start":140},{"id":"external_commands:SKILL.md:143:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`studio.genlayer.com` enforces per-IP limits: **60 req/min, 1000 req/hr, 10000 req/day**. Limits are","category":"external_commands","line_end":143,"severity":"medium","line_start":143},{"id":"env_access:SKILL.md:94:generic-api-secret-keys","file":"SKILL.md","pattern":"Generic API/secret keys","snippet":"- \"${ACCOUNT_PRIVATE_KEY_1}\"","category":"env_access","line_end":94,"severity":"high","line_start":94},{"id":"env_access:SKILL.md:95:generic-api-secret-keys","file":"SKILL.md","pattern":"Generic API/secret keys","snippet":"- \"${ACCOUNT_PRIVATE_KEY_2}\"","category":"env_access","line_end":95,"severity":"high","line_start":95}],"finding_verdicts":[{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:48:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:53:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:64:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:70:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:74:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:77:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:80:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:84:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:96:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:100:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:107:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:111:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:112:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:134:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:140:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:143:ruby-shell-backtick-execution","reason":"This is Markdown documentation. The flagged text is a fenced code marker, inline command example, or code-formatting backtick, not Ruby or shell execution by the skill.","verdict":"false_positive","confidence":0.99},{"id":"env_access:SKILL.md:94:generic-api-secret-keys","reason":"The configuration example references private keys through environment-variable interpolation. It does not read, transmit, print, or otherwise expose their values.","verdict":"false_positive","confidence":0.96},{"id":"env_access:SKILL.md:95:generic-api-secret-keys","reason":"The configuration example references private keys through environment-variable interpolation. It does not read, transmit, print, or otherwise expose their values.","verdict":"false_positive","confidence":0.96}],"semantic_findings":[],"subject_marketplace_commit_sha":"3f6e026a3363e0954ede7bef0cfe88d4475de137","subject_content_hash":"d8a3afd9c89176c713d070dfb502db9f1cf417f150f9e8a3694ba697026cbee8","subject_tree_hash":"5d80a90ad41c0c2b443bd040576adbad19450e35107b8d453827a6fca31625c8","subject_plugin_path":"skills/internet-court/integration-tests","audit_payload_hash":"d20e4380efe99b9f2e7eda42cd367092","confirmed_risk_level":"safe","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"3f6e026a3363e0954ede7bef0cfe88d4475de137","contentHash":"d8a3afd9c89176c713d070dfb502db9f1cf417f150f9e8a3694ba697026cbee8","treeHash":"5d80a90ad41c0c2b443bd040576adbad19450e35107b8d453827a6fca31625c8","pluginPath":"skills/internet-court/integration-tests","auditPayloadHash":"d20e4380efe99b9f2e7eda42cd367092"},"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}}