{
  "llm": {
    "conf": 0.018708993,
    "grade": "benign",
    "model": "Qwen/Qwen3.8-27B",
    "outcome": "benign",
    "interpretation": "Legitimate MJML Rails gem"
  },
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.027923873,
        "rte": "az",
        "prob": 0.027923873
      },
      {
        "cls": 0,
        "raw": 0.005878409,
        "rte": "az/gem",
        "prob": 0.005878409
      }
    ],
    "prob": 0.027923873,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.02792387269437313,
        "type": "gem"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000026265779524692334,
        "type": "tar.gz"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000015387931853183545,
        "type": "ruby"
      },
      {
        "id": 3,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001706679722701665,
        "type": "ruby"
      },
      {
        "id": 18,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000012745459571306128,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-02T18:07:13Z"
  },
  "path": "mjml-rails-4.3.1.gem",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "zdN/$wmoN*e[YFg00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fFCgmg=d2?fFCgmfFCfXfFCgmfA",
            "ln": 0
          }
        ],
        "mol": "O(C)H₂(CmPo)",
        "sha": "c3b2c90a2267fb36cdd1cdd6587fdb68529304d4e9febb58b4e7dae44262376e",
        "path": "mjml-rails-4.3.1.gem",
        "risk": 4,
        "size": 16384,
        "type": "gem",
        "facts": {
          "metrics": {
            "gem": {
              "dependency_count": 0,
              "runtime_dependency_count": 0,
              "development_dependency_count": 0
            },
            "file": {
              "size": 16384,
              "entropy": 6.51
            },
            "binary": {
              "peak_region_bytes": 8192,
              "peak_region_entropy": 7.83
            },
            "archive": {
              "file_count": 6,
              "member_count": 6,
              "script_count": 0,
              "directory_count": 0,
              "executable_count": 0,
              "hidden_file_count": 0,
              "uncompressed_size": 11124,
              "max_filename_length": 21,
              "rtlo_filename_count": 0,
              "format.regular_count": 6,
              "nested_archive_count": 3,
              "path_traversal_count": 0,
              "symlink_escape_count": 0,
              "security.setgid_count": 0,
              "security.setuid_count": 0,
              "security.sticky_count": 0,
              "double_extension_count": 0,
              "security.symlink_count": 0,
              "unicode_filename_count": 0,
              "homoglyph_filename_count": 0,
              "timing.mtime_unique_count": 1,
              "misplaced_executable_count": 0,
              "timing.mtime_spread_seconds": 0,
              "security.world_writable_count": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "mjml-rails",
            "source": "gem.name",
            "verified": false
          },
          "urls": [
            {
              "url": "https://github.com/sighmon/mjml-rails",
              "kind": "homepage",
              "source": "gem.homepage"
            }
          ],
          "trust": "unsigned",
          "authors": [
            {
              "name": "Simon Loffler",
              "role": "author",
              "source": "gem.authors"
            },
            {
              "name": "Steven Pickles",
              "role": "author",
              "source": "gem.authors"
            }
          ],
          "version": {
            "value": "4.3.1",
            "source": "gem.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File identified as a test by path or name",
            "from": [
              {
                "file": 1
              },
              {
                "file": 3
              },
              {
                "file": 12
              },
              {
                "file": 13
              },
              {
                "file": 14
              },
              {
                "file": 15
              }
            ]
          },
          {
            "id": "metadata/package/testing/presence/harness::tests-path-filename",
            "conf": 0.85,
            "crit": 1,
            "desc": "File path or name indicates test code"
          },
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL"
          },
          {
            "id": "micro-behaviors/communications/http/message::http-url-literal",
            "conf": 0.75,
            "crit": 2,
            "desc": "HTTP URL string literal"
          },
          {
            "id": "objectives/command-and-control/reverse-shell/dup::open3-popen",
            "atk": "T1059",
            "conf": 0.75,
            "crit": 3,
            "desc": "Open3 popen call"
          },
          {
            "id": "micro-behaviors/process/create/shell/lang::ruby-subshell-command",
            "conf": 0.93,
            "crit": 3,
            "desc": "Ruby subshell command execution"
          },
          {
            "id": "micro-behaviors/process/create/shell/lang::ruby-popen",
            "conf": 0.92,
            "crit": 3,
            "desc": "popen pipes to/from command"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory-path",
            "conf": 1.0,
            "crit": 1,
            "desc": "File is in common test directory"
          },
          {
            "id": "micro-behaviors/fs/path/temp::tmp-path-content",
            "conf": 1.0,
            "crit": 2,
            "desc": "Contains a /tmp/ or /var/tmp/ path"
          },
          {
            "id": "micro-behaviors/fs/path/temp::unix-temp",
            "conf": 0.7,
            "crit": 2,
            "desc": "Unix /tmp/ path reference"
          }
        ]
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 7846,
              "entropy": 7.97
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 7846,
              "peak_region_entropy": 7.83
            }
          }
        },
        "id": 1,
        "mol": "O(C)H₂(CmPo)",
        "path": "mjml-rails-4.3.1.gem!!data.tar.gz",
        "pid": 0,
        "risk": 4,
        "sha": "c248937b61b38ec294fdeffe7bbbf41da470f3157b664697c9def79f543ecaad",
        "size": 7846,
        "traits": [
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File identified as a test by path or name",
            "from": [
              {
                "file": 3
              },
              {
                "file": 12
              },
              {
                "file": 13
              },
              {
                "file": 14
              },
              {
                "file": 15
              }
            ]
          },
          {
            "id": "micro-behaviors/fs/path/temp::unix-temp",
            "conf": 0.7,
            "crit": 2,
            "desc": "Unix /tmp/ path reference"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory-path",
            "conf": 1.0,
            "crit": 1,
            "desc": "File is in common test directory"
          },
          {
            "id": "micro-behaviors/process/create/shell/lang::ruby-popen",
            "conf": 0.92,
            "crit": 3,
            "desc": "popen pipes to/from command"
          },
          {
            "id": "micro-behaviors/communications/http/message::http-url-literal",
            "conf": 0.75,
            "crit": 2,
            "desc": "HTTP URL string literal"
          },
          {
            "id": "objectives/command-and-control/reverse-shell/dup::open3-popen",
            "atk": "T1059",
            "conf": 0.75,
            "crit": 3,
            "desc": "Open3 popen call"
          },
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL"
          },
          {
            "id": "micro-behaviors/fs/path/temp::tmp-path-content",
            "conf": 1.0,
            "crit": 2,
            "desc": "Contains a /tmp/ or /var/tmp/ path"
          },
          {
            "id": "metadata/package/testing/presence/harness::tests-path-filename",
            "conf": 0.85,
            "crit": 1,
            "desc": "File path or name indicates test code"
          },
          {
            "id": "micro-behaviors/process/create/shell/lang::ruby-subshell-command",
            "conf": 0.93,
            "crit": 3,
            "desc": "Ruby subshell command execution"
          }
        ],
        "type": "tar.gz"
      },
      {
        "ctx": [
          {
            "b": "A+flkx(W=cb64aay\u0026.mMwPz\u003caz/c:aA+flkx(W=cb4j#6x(v(@C4\u003eJia{@v4ADL#owGSg9v@#B6zEmN3wP]!HwO(y5vru683uxY$B.L(car\u003eVqzep\u003exyhE^ewO?",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "a{]CnkTog3zerM*x(mv1D0+c6A=k#9B98CpzF77Par\u003cf\u003eB.\u003ePacV*Fyx(mD7Bzbkdo?FbNar#kcyhE=tze9{7uT^.!vrcT2C4CYnx(v(@B9hCvz/P@hwpkOfx(mv1C}HY(xKM6}aBd)FaAzQxas57EAbu.izGx]dy?$khyhE=Ka{]CnkTn^\u0026vrDWaw{CHZaARTDwEoL5kTog2zFrZdauZ\u0026VvqH0@3jm)#wmYu}B7Gf1e[nNav@2B{wPz\u003caz/c$jx(kvbarR^HnLZ%Tz/xo9c%Hd{zy=[TeIhcSA=U@kzynZsaBtkUx(wwwx(tRAwNPa4x(mA%B.25Fc)AIyzep!lz/PzIar#kcyhE=tze9{7uT^.!vrcT2C4CYnx(v(@B9hCvz/P@hwpkTJaBKOtaAz4mv%8t\u0026arR^Hw)]H%wEoL5wO#2=3lQE4wO96awO+%hwnc9{z*2YjuU%K{y*QT=zvdHearR)KlUH4vyANkcAV!^kxkzG}vqE62zGx]dy?$kjw/%/uo?VWsx(mv1C)UVparUJozerM*x(k4Rasz2vzepNbarR^HA+funA=91pyhE=]vRGZ5x\u003ewF$xK$W?uV{13B7]Mgc#AZoyY",
            "ln": 403,
            "col": 40,
            "line": 13
          },
          {
            "b": "zF6q0arR!Ax(1b0az2C33jm)#wmYu}B7Gf1e[eKjuVoB}xKtv(z/3[wvpK7YxjUB!vqYH^wPxjbarR^Hu)y2qvpK7YxjUB!vqYH^wPAhwvRGZ/e[nNkzeY?8aAz4mv%8u9mriA^z-P{FpesqNr3izdAa9l(vp%c]zddr\u003cxjV9ax(+zmz/^aozGx]dy\u00260V[3lQDlaz$[f3lQE5zE:7YarT0xp9qXxwnc9{z*2YjuU%K{y*QT=zvcZ[ay/j@B8@D{vqYQ(wPwb2arR!q",
            "ln": 1235,
            "col": 37,
            "line": 39
          },
          {
            "b": "Acb/jzEEu7B7F\u003c1zE:(hz/{8gwGU@2A:-/@By/FnBz\u0026psvqxA%x(\u003eFwz/PRoCwhejaw#SZy\u0026ZZ.jS(Tz3lQDlar@0}wOkZ{zFs03aA}KwxDQhYx(4\u0026khxW9Mze:r1By=OdvqYQ(wPz\u0026mxjVfcBzbkdB8Mhwv}u^3w/#hewGV8aze:r1By=O6B0bNr",
            "ln": 1589,
            "col": 8,
            "line": 56
          },
          {
            "b": "vrcDjCwhejauTHQzeqxUA=k(raAR483lQDlarR^Kaw3e/Cv.[fwPP5dwPzu8vqYP#By/rdy*?A%aAIEzA:@V6wn=42zyoJGB97\u0026hBrC^wBz8!nzE\u003c@8BrCBivqZb[arR^HarR)KBzb98aA}xtvrb{4A+fc0wPzH5xcqe4A==27y-)R7zdNl2vpJ!=A+5)4xcqqmaz+R4vpKN9zEEx@zF784z/f-fzGGPhzxHuDvrcE7vqH0cwO#3)zF78ox([2hcOxmJ",
            "ln": 2058,
            "col": 79,
            "line": 67
          },
          {
            "b": "xK#67Bz(aIy?m^3y-)L5D2E?Efly=xAbn%8wGUYdaAz4hwmY^)wc%C4arR^HbmkLoarR^HboQhAt{7ZwxMOunB2\u003e%cxk8E3BZ=$kz/4dAyhE^3z.C%xzep\u003emy\u0026r=ozddHcwPxCmz^$CkB.Lw$e]tbzze9{73lQDlarR!vw/$P4ze:i9wN]d?z/{8gwGTc+atk\u0026]yhE=ne?nwnj$*QSarR^HarR^Hb28/?y=TQKyhE^ewO(y5vru6kBz\u003eJ1BzU?xvR6g^zAx6",
            "ln": 2391,
            "col": 26,
            "line": 71
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "mattr_accessor"
            ],
            [
              "",
              "mjml_binary_version_supported"
            ],
            [
              "",
              "popen"
            ],
            [
              "",
              "include?"
            ],
            [
              "",
              "read"
            ],
            [
              "",
              "mjml_binary_version_supported"
            ],
            [
              "",
              "check_version"
            ],
            [
              "",
              "bin_path_from"
            ],
            [
              "",
              "bin_path_from"
            ],
            [
              "",
              "puts"
            ],
            [
              "",
              "mjml_binary_error_string"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "check_version"
            ],
            [
              "",
              "puts"
            ],
            [
              "",
              "mjml_binary_error_string"
            ],
            [
              "",
              "chomp"
            ],
            [
              "",
              "registered_template_handler"
            ],
            [
              "",
              "template_language"
            ],
            [
              "",
              "call"
            ],
            [
              "",
              "call"
            ],
            [
              "",
              "block_given?"
            ],
            [
              "",
              "attr_writer"
            ],
            [
              "",
              "tap"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "progname"
            ],
            [
              "",
              "name"
            ],
            [
              "",
              "action_view"
            ],
            [
              "",
              "action_view/template"
            ],
            [
              "",
              "mjml/mjmltemplate"
            ],
            [
              "",
              "mjml/railtie"
            ],
            [
              "",
              "rails/version"
            ],
            [
              "",
              "rubygems"
            ]
          ],
          "mbr": [
            "File.join",
            "IO.popen",
            "Logger.new",
            "Logger.new.tap",
            "Mjml.mjml_binary_error_string",
            "Mjml.mjml_binary_version_supported",
            "Mjml.template_language",
            "io.read",
            "io.read.include?",
            "log.progname",
            "template_handler.call"
          ],
          "tgt": [
            "attr_writer",
            "bin_path_from",
            "block_given?",
            "call",
            "check_version",
            "chomp",
            "include?",
            "join",
            "mattr_accessor",
            "mjml_binary_error_string",
            "mjml_binary_version_supported",
            "name",
            "new",
            "popen",
            "progname",
            "puts",
            "read",
            "registered_template_handler",
            "require",
            "tap",
            "template_language"
          ],
          "funcs": [
            [
              "check_version",
              583
            ],
            [
              "discover_mjml_bin",
              750
            ],
            [
              "bin_path_from",
              1255
            ],
            [
              "template_handler",
              1450
            ],
            [
              "call",
              1767
            ],
            [
              "setup",
              2698
            ],
            [
              "logger",
              2796
            ]
          ],
          "metrics": {
            "ast": {
              "op.ge": 1,
              "op.lor": 1,
              "max_depth": 13,
              "op.concat": 17,
              "call_count": 32,
              "node_count": 476,
              "member_count": 11,
              "max_array_len": 2,
              "op_density.ge": 0,
              "op_density.lor": 0,
              "member_depth_max": 3,
              "op_density.concat": 0.04
            },
            "file": {
              "size": 2919,
              "entropy": 4.79
            },
            "text": {
              "lines": 95,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0,
              "space_count": 527,
              "char_entropy": 4.79,
              "unique_chars": 74,
              "top_char_null": 0,
              "string_density": 0.16,
              "top_char_ratio": 0.08,
              "avg_line_length": 29.73,
              "max_line_length": 139,
              "empty_line_ratio": 0.16,
              "last_line_length": 3,
              "whitespace_ratio": 0.21,
              "identifier_density": 0.99,
              "line_length_stddev": 31.64,
              "normalized_string_count": 1.54,
              "repeated_char_sequences": 2,
              "suspicious_comment_ratio": 0.07,
              "normalized_unique_identifiers": 8.37
            },
            "binds": {
              "count": 14
            },
            "binary": {
              "peak_region_bytes": 2919,
              "peak_region_entropy": 4.88
            },
            "source": {
              "class_count": 2,
              "function_count": 7
            },
            "imports": {
              "count": 6,
              "third_party_count": 6,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 323,
              "count": 15,
              "avg_length": 21.53,
              "max_length": 102,
              "avg_entropy": 2.89,
              "entropy_stddev": 1.14
            },
            "comments": {
              "chars": 787,
              "count": 14,
              "empty": 1,
              "lines": 13,
              "high_entropy": 1,
              "to_code_ratio": 0.16,
              "url_in_comments": 1
            },
            "functions": {
              "count": 9
            },
            "identifiers": {
              "count": 94,
              "unique": 55,
              "avg_length": 10.04,
              "max_length": 31,
              "min_length": 2,
              "avg_entropy": 2.63,
              "reuse_ratio": 0.59,
              "length_stddev": 7.41,
              "high_entropy_count": 10,
              "high_entropy_ratio": 0.18,
              "all_lowercase_ratio": 0.58,
              "all_uppercase_ratio": 0.09
            }
          }
        },
        "id": 2,
        "mol": "H₂(CmPo)",
        "path": "mjml-rails-4.3.1.gem!!data.tar.gz!!lib/mjml.rb",
        "risk": 2,
        "sha": "4af273ceb087f635e31ffde1433061da87fc198d1d6bf692562dd6bb87f6992a",
        "size": 2919,
        "traits": [
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL",
            "spans": [
              [
                2455,
                19
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/create/shell/lang::ruby-popen",
            "conf": 0.92,
            "crit": 3,
            "desc": "popen pipes to/from command",
            "spans": [
              [
                615,
                5
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/create/shell/lang::ruby-subshell-command",
            "conf": 0.93,
            "crit": 3,
            "desc": "Ruby subshell command execution",
            "spans": [
              [
                1299,
                24
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "A+flkx(W=ccV\u0026{vByeY)y\u0026A%acKHh\u003ewPIv4x\u003c$S@o\u003e[JYiYZ8CA=U/jay]x$arUGiBsog:zG6-udiJ%WzeS{1c)@.DAclmIdiK3CarUGiBsog?vrcB2AW-bTawDP/y=TQNvrcB2AXqlvCpme",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "arR!rzE:7%arR!rzE:7YarR^HwmY*(A+O#]asyVczxJ$hvpQG\u0026wNP.6x\u003ezSkvqYP#ze0)4w{CIez/ff3xlbBywn.!$arR^HazC{ucV%Gway]4}vrDydB0bgeaz#9uv@Dl%x\u003eFM5B0bKnBsehwzWEQfarR^HarUluAaJK3c@1C[y+xgdvrDWaw{C*",
            "ln": 982,
            "col": 4,
            "line": 38
          },
          {
            "b": "3lQDlarR!ywPPsYwPz*fAW-bTaszkzwO=f9wPz*fAWI#T3lQDlarR!ywPPsYB97@7A=JPKDMWfzv@0FuB97@7A=JJUaz2F6kro{0vqH0@efF$AvpRzwwPz*fAW-bV3jm)#arR^HvR6d\u0026A+cwuawV@/zzJ[^BAI5lc#:9zwO%p+ax@.$y+cYDx(2syB97@7A=JYNzFr])diK3C3lQDlarR!vBrz@Kvqf^]B0b4sv}xR3x(v(pay]x$arR^HarR^HeJ$q7aAg+fB7GwAA=(mxa$[4PA4+{yAclnfw[=6)e]tuuy:70Ie]t-LByf5%x(^\u0026lo\u003e[JYiYZ8CA=U/jiYZ8CA=U!XA=M8sefFIAA=k$E3lQDlarR!rzE:7%arR!rzE:7%az2C33t19=3i",
            "ln": 1517,
            "col": 47,
            "line": 60
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "require"
            ],
            [
              "",
              "describe"
            ],
            [
              "",
              "let"
            ],
            [
              "",
              "mock"
            ],
            [
              "",
              "let"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "describe"
            ],
            [
              "",
              "describe"
            ],
            [
              "",
              "let"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "let"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "before"
            ],
            [
              "",
              "raises"
            ],
            [
              "",
              "stubs"
            ],
            [
              "",
              "describe"
            ],
            [
              "",
              "before"
            ],
            [
              "",
              "setup"
            ],
            [
              "",
              "raise_render_exception"
            ],
            [
              "",
              "it"
            ],
            [
              "",
              "must_raise"
            ],
            [
              "",
              "render"
            ],
            [
              "",
              "message"
            ],
            [
              "",
              "describe"
            ],
            [
              "",
              "before"
            ],
            [
              "",
              "setup"
            ],
            [
              "",
              "raise_render_exception"
            ],
            [
              "",
              "it"
            ],
            [
              "",
              "must_equal"
            ],
            [
              "",
              "render"
            ],
            [
              "",
              "describe"
            ],
            [
              "",
              "it"
            ],
            [
              "",
              "equal?"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "beautify"
            ],
            [
              "",
              "equal?"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "minify"
            ],
            [
              "",
              "it"
            ],
            [
              "",
              "setup"
            ],
            [
              "",
              "beautify"
            ],
            [
              "",
              "minify"
            ],
            [
              "",
              "equal?"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "beautify"
            ],
            [
              "",
              "equal?"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "minify"
            ],
            [
              "",
              "describe"
            ],
            [
              "",
              "describe"
            ],
            [
              "",
              "let"
            ],
            [
              "",
              "let"
            ],
            [
              "",
              "mock"
            ],
            [
              "",
              "before"
            ],
            [
              "",
              "stubs"
            ],
            [
              "",
              "it"
            ],
            [
              "",
              "must_raise"
            ],
            [
              "",
              "run"
            ],
            [
              "",
              "test_helper"
            ]
          ],
          "mbr": [
            "Class.new",
            "Mjml.beautify",
            "Mjml.minify",
            "Mjml.setup",
            "Open3.stubs",
            "config.beautify",
            "config.minify",
            "config.raise_render_exception",
            "custom_error_class.new",
            "error.message",
            "parser.render",
            "parser.render.must_equal",
            "parser.run",
            "parser.stubs",
            "parser.stubs.raises"
          ],
          "tgt": [
            "beautify",
            "before",
            "describe",
            "equal?",
            "expect",
            "it",
            "let",
            "message",
            "minify",
            "mock",
            "must_equal",
            "must_raise",
            "new",
            "raise_render_exception",
            "raises",
            "render",
            "require",
            "run",
            "setup",
            "stubs"
          ],
          "metrics": {
            "ast": {
              "max_depth": 21,
              "op.concat": 28,
              "call_count": 58,
              "node_count": 530,
              "member_count": 15,
              "max_array_len": 4,
              "member_depth_max": 3,
              "op_density.concat": 0.05
            },
            "file": {
              "size": 1834,
              "entropy": 4.33
            },
            "text": {
              "lines": 71,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0,
              "space_count": 489,
              "char_entropy": 4.33,
              "unique_chars": 53,
              "top_char_null": 0,
              "string_density": 0.27,
              "top_char_ratio": 0.09,
              "avg_line_length": 24.83,
              "max_line_length": 92,
              "empty_line_ratio": 0.18,
              "last_line_length": 3,
              "whitespace_ratio": 0.31,
              "identifier_density": 1.32,
              "line_length_stddev": 21.81,
              "normalized_string_count": 2.25,
              "repeated_char_sequences": 10,
              "normalized_unique_identifiers": 5.2
            },
            "binds": {
              "count": 4
            },
            "binary": {
              "peak_region_bytes": 1834,
              "peak_region_entropy": 4.47
            },
            "imports": {
              "count": 1,
              "third_party_count": 1,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 345,
              "count": 19,
              "avg_length": 18.16,
              "max_length": 41,
              "path_count": 1,
              "avg_entropy": 3.17,
              "empty_count": 1,
              "entropy_stddev": 0.61
            },
            "identifiers": {
              "count": 94,
              "unique": 32,
              "avg_length": 6.94,
              "max_length": 22,
              "min_length": 2,
              "avg_entropy": 2.29,
              "reuse_ratio": 0.34,
              "length_stddev": 4.09,
              "has_digit_ratio": 0.03,
              "all_lowercase_ratio": 0.78,
              "numeric_suffix_count": 1
            }
          }
        },
        "id": 3,
        "mol": "O(C)",
        "path": "mjml-rails-4.3.1.gem!!data.tar.gz!!test/parser_test.rb",
        "risk": 2,
        "sha": "9bd74f891bbf09e1a216f5a28723ea0177009d99076c432c15cbf99fda321e37",
        "size": 1834,
        "traits": [
          {
            "id": "metadata/package/testing/presence/harness::test-directory-path",
            "conf": 1.0,
            "crit": 1,
            "desc": "File is in common test directory",
            "spans": [
              [
                0,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/path/temp::tmp-path-content",
            "conf": 1.0,
            "crit": 2,
            "desc": "Contains a /tmp/ or /var/tmp/ path",
            "spans": [
              [
                1737,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/path/temp::unix-temp",
            "conf": 0.7,
            "crit": 2,
            "desc": "Unix /tmp/ path reference",
            "spans": [
              [
                1738,
                0
              ]
            ]
          },
          {
            "id": "objectives/command-and-control/reverse-shell/dup::open3-popen",
            "atk": "T1059",
            "conf": 0.75,
            "crit": 3,
            "desc": "Open3 popen call",
            "spans": [
              [
                1646,
                6
              ]
            ]
          },
          {
            "id": "metadata/package/testing/presence/harness::tests-path-filename",
            "conf": 0.85,
            "crit": 1,
            "desc": "File path or name indicates test code",
            "spans": [
              [
                0,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File identified as a test by path or name",
            "spans": [
              [
                0,
                0
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeiFz6yIPzEEx[b03]+yhE=sA:-V#B0rdVC4CYnx(v(kiWcykgCgyaefY4QvR/+1xK$ZYvrrXOf/p\u003cFh83{Ai58%dvp%dUwmo+8b04Fph8W0fyY",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 848,
              "entropy": 4.76
            },
            "binary": {
              "peak_region_bytes": 848,
              "peak_region_entropy": 4.76
            },
            "registry": {
              "age_days": 2556,
              "published_at": 1567506381,
              "is_deprecated": 0,
              "downloads_total": 10071060,
              "downloads_recent": 161389
            }
          }
        },
        "id": 18,
        "path": "mjml-rails@4.3.1.registry.json",
        "pid": 0,
        "rel": "registry",
        "role": "sidecar",
        "sha": "9ae3987e923cfd4007ccdf703a136a6b53a90014692ed3d29b811937af018cce",
        "size": 848,
        "traits": [
          {
            "id": "metadata/registry::widely-installed",
            "conf": 1.0,
            "crit": 1,
            "desc": "Large registry install base (10k+ downloads)",
            "spans": [
              [
                0,
                0
              ]
            ]
          }
        ],
        "type": "registry"
      }
    ],
    "rev": "479f3",
    "v": "8"
  }
}