{
  "artifact": {
    "artifact_id": "github-com-nvidia-skillspector-98255810d4",
    "artifact_name": "NVIDIA/SkillSpector",
    "canonical_url": "https://github.com/NVIDIA/SkillSpector",
    "artifact_url": "https://www.rightshold.com/resource-scans/github-com-nvidia-skillspector-98255810d4",
    "receipt_count": 1,
    "versions": 1,
    "current_sha256": "1bfa919d59a94daf50c668d8ccaee83a05124c899613c6f3e06ec0437470e2d2",
    "version_note": "Every receipt for this artifact so far names the same SHA-256: the bytes have not changed between scans.",
    "latest_receipt": {
      "id": "rsc_d7d3782d5531d863fe0b3b41",
      "artifact_id": "github-com-nvidia-skillspector-98255810d4",
      "artifact_name": "NVIDIA/SkillSpector",
      "canonical_url": "https://github.com/NVIDIA/SkillSpector",
      "fetched_from": "https://raw.githubusercontent.com/NVIDIA/SkillSpector/HEAD/README.md",
      "sha256": "1bfa919d59a94daf50c668d8ccaee83a05124c899613c6f3e06ec0437470e2d2",
      "byte_size": 58475,
      "scanner_version": "resource-scan-v1",
      "scanned_at": "2026-10-27T12:26:15.020Z",
      "checks": [
        {
          "id": "network",
          "label": "Outbound network references",
          "status": "flag",
          "findings": [
            "The scanned bytes reference outbound network activity to these domains: api-docs.deepseek.com, api.anthropic.com, api.groq.com, api.skill.io, docs.nvidia.com, example.openai.azure.com, generativelanguage.googleapis.com, github.com, img.shields.io, modelcontextprotocol.io, my-gateway.example.com, osv.dev, platform.claude.com, www.apache.org, www.python.org. Any resource that reaches the network can send data out as well as bring data in; the findings name what the bytes reference, and the reader decides whether that fits the resource's stated purpose."
          ],
          "evidence": [
            "domain: api-docs.deepseek.com",
            "domain: api.anthropic.com",
            "domain: api.groq.com",
            "domain: api.skill.io",
            "domain: docs.nvidia.com",
            "domain: example.openai.azure.com",
            "domain: generativelanguage.googleapis.com",
            "domain: github.com",
            "domain: img.shields.io",
            "domain: modelcontextprotocol.io",
            "domain: my-gateway.example.com",
            "domain: osv.dev",
            "domain: platform.claude.com",
            "domain: www.apache.org",
            "domain: www.python.org",
            "HTTP client or socket calls"
          ]
        },
        {
          "id": "credentials",
          "label": "Credential and environment access",
          "status": "flag",
          "findings": [
            "The scanned bytes contain credential or environment access patterns: environment variable reads (process.env / os.environ / getenv); secret-named variables (API_KEY, SECRET, TOKEN, PASSWORD and similar names); credential file paths (.env, .ssh, credential stores); authorization headers and bearer values. The receipt names the pattern kinds only; no credential value is reproduced here."
          ],
          "evidence": [
            "environment variable reads (process.env / os.environ / getenv)",
            "secret-named variables (API_KEY, SECRET, TOKEN, PASSWORD and similar names)",
            "credential file paths (.env, .ssh, credential stores)",
            "authorization headers and bearer values"
          ]
        },
        {
          "id": "install_hooks",
          "label": "Install and postinstall hooks",
          "status": "pass",
          "findings": [
            "No install or postinstall hooks were found in the scanned bytes."
          ],
          "evidence": []
        },
        {
          "id": "obfuscation",
          "label": "Obfuscation and encoded payloads",
          "status": "flag",
          "findings": [
            "The scanned bytes carry obfuscation or encoding signs: eval or Function-constructor evaluation of text as code. Encoded content cannot be read from the bytes alone, so what it does cannot be checked from the bytes alone either."
          ],
          "evidence": [
            "eval or Function-constructor evaluation of text as code"
          ]
        },
        {
          "id": "shell_and_download",
          "label": "Shell-outs and download-and-execute",
          "status": "flag",
          "findings": [
            "The scanned bytes contain shell-out or download patterns: child process execution (child_process, exec, spawn); shell invocation from Python (subprocess, os.system, Popen); shell command tools named in the bytes (curl, wget, powershell); download-and-execute pattern (fetched content passed to an executor in the same file). Code that runs shell commands acts with the full permissions of whoever runs it."
          ],
          "evidence": [
            "child process execution (child_process, exec, spawn)",
            "shell invocation from Python (subprocess, os.system, Popen)",
            "shell command tools named in the bytes (curl, wget, powershell)",
            "download-and-execute pattern (fetched content passed to an executor in the same file)"
          ]
        },
        {
          "id": "permission_vs_behavior",
          "label": "Permission declarations vs behavior",
          "status": "flag",
          "findings": [
            "The bytes show network, credentials behavior, and no permissions declaration was found in the scanned bytes to compare it against."
          ],
          "evidence": [
            "behavior: network",
            "behavior: credentials"
          ]
        },
        {
          "id": "known_bad",
          "label": "Known-bad indicators",
          "status": "flag",
          "findings": [
            "The scanned bytes match these known-bad indicators from the scanner's published pattern list: pipe-to-shell: a download piped straight into a shell interpreter; token- or credential-taking vocabulary (stealer, grabber, exfiltrate). Each match is a reproducible pattern match on the bytes named by the hash; re-running the published check on the same bytes reaches the same finding."
          ],
          "evidence": [
            "pipe-to-shell: a download piped straight into a shell interpreter",
            "token- or credential-taking vocabulary (stealer, grabber, exfiltrate)"
          ]
        },
        {
          "id": "provenance",
          "label": "Provenance facts (weak signals)",
          "status": "pass",
          "findings": [
            "Provenance facts, labeled weak signals — they say where the bytes sit, not what the bytes do: source host: github.com; repository: NVIDIA/SkillSpector; bytes scanned: 58475; fetched from: https://raw.githubusercontent.com/NVIDIA/SkillSpector/HEAD/README.md."
          ],
          "evidence": [
            "source host: github.com",
            "repository: NVIDIA/SkillSpector",
            "bytes scanned: 58475",
            "fetched from: https://raw.githubusercontent.com/NVIDIA/SkillSpector/HEAD/README.md"
          ]
        }
      ],
      "checks_total": 8,
      "checks_flagged": 6,
      "summary": "6 of 8 checks flagged",
      "ledger_seq": 1663,
      "receipt_url": "https://www.rightshold.com/resource-scans/github-com-nvidia-skillspector-98255810d4"
    },
    "history": [
      {
        "id": "rsc_d7d3782d5531d863fe0b3b41",
        "artifact_id": "github-com-nvidia-skillspector-98255810d4",
        "artifact_name": "NVIDIA/SkillSpector",
        "canonical_url": "https://github.com/NVIDIA/SkillSpector",
        "fetched_from": "https://raw.githubusercontent.com/NVIDIA/SkillSpector/HEAD/README.md",
        "sha256": "1bfa919d59a94daf50c668d8ccaee83a05124c899613c6f3e06ec0437470e2d2",
        "byte_size": 58475,
        "scanner_version": "resource-scan-v1",
        "scanned_at": "2026-10-27T12:26:15.020Z",
        "checks": [
          {
            "id": "network",
            "label": "Outbound network references",
            "status": "flag",
            "findings": [
              "The scanned bytes reference outbound network activity to these domains: api-docs.deepseek.com, api.anthropic.com, api.groq.com, api.skill.io, docs.nvidia.com, example.openai.azure.com, generativelanguage.googleapis.com, github.com, img.shields.io, modelcontextprotocol.io, my-gateway.example.com, osv.dev, platform.claude.com, www.apache.org, www.python.org. Any resource that reaches the network can send data out as well as bring data in; the findings name what the bytes reference, and the reader decides whether that fits the resource's stated purpose."
            ],
            "evidence": [
              "domain: api-docs.deepseek.com",
              "domain: api.anthropic.com",
              "domain: api.groq.com",
              "domain: api.skill.io",
              "domain: docs.nvidia.com",
              "domain: example.openai.azure.com",
              "domain: generativelanguage.googleapis.com",
              "domain: github.com",
              "domain: img.shields.io",
              "domain: modelcontextprotocol.io",
              "domain: my-gateway.example.com",
              "domain: osv.dev",
              "domain: platform.claude.com",
              "domain: www.apache.org",
              "domain: www.python.org",
              "HTTP client or socket calls"
            ]
          },
          {
            "id": "credentials",
            "label": "Credential and environment access",
            "status": "flag",
            "findings": [
              "The scanned bytes contain credential or environment access patterns: environment variable reads (process.env / os.environ / getenv); secret-named variables (API_KEY, SECRET, TOKEN, PASSWORD and similar names); credential file paths (.env, .ssh, credential stores); authorization headers and bearer values. The receipt names the pattern kinds only; no credential value is reproduced here."
            ],
            "evidence": [
              "environment variable reads (process.env / os.environ / getenv)",
              "secret-named variables (API_KEY, SECRET, TOKEN, PASSWORD and similar names)",
              "credential file paths (.env, .ssh, credential stores)",
              "authorization headers and bearer values"
            ]
          },
          {
            "id": "install_hooks",
            "label": "Install and postinstall hooks",
            "status": "pass",
            "findings": [
              "No install or postinstall hooks were found in the scanned bytes."
            ],
            "evidence": []
          },
          {
            "id": "obfuscation",
            "label": "Obfuscation and encoded payloads",
            "status": "flag",
            "findings": [
              "The scanned bytes carry obfuscation or encoding signs: eval or Function-constructor evaluation of text as code. Encoded content cannot be read from the bytes alone, so what it does cannot be checked from the bytes alone either."
            ],
            "evidence": [
              "eval or Function-constructor evaluation of text as code"
            ]
          },
          {
            "id": "shell_and_download",
            "label": "Shell-outs and download-and-execute",
            "status": "flag",
            "findings": [
              "The scanned bytes contain shell-out or download patterns: child process execution (child_process, exec, spawn); shell invocation from Python (subprocess, os.system, Popen); shell command tools named in the bytes (curl, wget, powershell); download-and-execute pattern (fetched content passed to an executor in the same file). Code that runs shell commands acts with the full permissions of whoever runs it."
            ],
            "evidence": [
              "child process execution (child_process, exec, spawn)",
              "shell invocation from Python (subprocess, os.system, Popen)",
              "shell command tools named in the bytes (curl, wget, powershell)",
              "download-and-execute pattern (fetched content passed to an executor in the same file)"
            ]
          },
          {
            "id": "permission_vs_behavior",
            "label": "Permission declarations vs behavior",
            "status": "flag",
            "findings": [
              "The bytes show network, credentials behavior, and no permissions declaration was found in the scanned bytes to compare it against."
            ],
            "evidence": [
              "behavior: network",
              "behavior: credentials"
            ]
          },
          {
            "id": "known_bad",
            "label": "Known-bad indicators",
            "status": "flag",
            "findings": [
              "The scanned bytes match these known-bad indicators from the scanner's published pattern list: pipe-to-shell: a download piped straight into a shell interpreter; token- or credential-taking vocabulary (stealer, grabber, exfiltrate). Each match is a reproducible pattern match on the bytes named by the hash; re-running the published check on the same bytes reaches the same finding."
            ],
            "evidence": [
              "pipe-to-shell: a download piped straight into a shell interpreter",
              "token- or credential-taking vocabulary (stealer, grabber, exfiltrate)"
            ]
          },
          {
            "id": "provenance",
            "label": "Provenance facts (weak signals)",
            "status": "pass",
            "findings": [
              "Provenance facts, labeled weak signals — they say where the bytes sit, not what the bytes do: source host: github.com; repository: NVIDIA/SkillSpector; bytes scanned: 58475; fetched from: https://raw.githubusercontent.com/NVIDIA/SkillSpector/HEAD/README.md."
            ],
            "evidence": [
              "source host: github.com",
              "repository: NVIDIA/SkillSpector",
              "bytes scanned: 58475",
              "fetched from: https://raw.githubusercontent.com/NVIDIA/SkillSpector/HEAD/README.md"
            ]
          }
        ],
        "checks_total": 8,
        "checks_flagged": 6,
        "summary": "6 of 8 checks flagged",
        "ledger_seq": 1663,
        "receipt_url": "https://www.rightshold.com/resource-scans/github-com-nvidia-skillspector-98255810d4"
      }
    ]
  }
}