{
  "llm": {
    "conf": 0.0002176996,
    "grade": "benign",
    "model": "qwen/qwen3.8-27b",
    "outcome": "benign",
    "interpretation": "Legitimate CSS splitter gem"
  },
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.0003249248,
        "rte": "az",
        "prob": 0.0003249248
      },
      {
        "cls": 0,
        "raw": 0.0017557144,
        "rte": "az/gem",
        "prob": 0.0017557144
      }
    ],
    "prob": 0.0003249248,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00032492479658685625,
        "type": "gem"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000040153663576347753,
        "type": "tar.gz"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000024457773179165088,
        "type": "python"
      },
      {
        "id": 3,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000026514133423916064,
        "type": "ruby"
      },
      {
        "id": 44,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00002872943878173828,
        "type": "registry"
      },
      {
        "id": 45,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00002872943878173828,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-04T03:23:53Z"
  },
  "path": "css_splitter-0.0.1.gem",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "wmoN*e{7Jxe[YFg00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fFCgmhz^k\u003cfFCgmfFCfXfFA",
            "ln": 0
          }
        ],
        "mol": "H₂(CmF)",
        "sha": "4da37790b40bbc0c1bd2b4473fc674fd06475afae1ac161c1a9dce693f1aecc4",
        "path": "css_splitter-0.0.1.gem",
        "refs": [
          {
            "to": "pkg:gem/rails",
            "off": 0,
            "kind": "dependency"
          }
        ],
        "risk": 3,
        "size": 135680,
        "type": "gem",
        "facts": {
          "metrics": {
            "gem": {
              "dependency_count": 1,
              "runtime_dependency_count": 1,
              "development_dependency_count": 0
            },
            "file": {
              "size": 135680,
              "entropy": 7.76
            },
            "binary": {
              "peak_region_bytes": 23552,
              "peak_region_entropy": 7.81
            },
            "archive": {
              "file_count": 2,
              "member_count": 2,
              "script_count": 0,
              "directory_count": 0,
              "executable_count": 0,
              "hidden_file_count": 0,
              "uncompressed_size": 132963,
              "max_filename_length": 11,
              "rtlo_filename_count": 0,
              "format.regular_count": 2,
              "nested_archive_count": 2,
              "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": "css_splitter",
            "source": "gem.name",
            "verified": false
          },
          "urls": [
            {
              "url": "https://github.com/zweilove/css_splitter",
              "kind": "homepage",
              "source": "gem.homepage"
            }
          ],
          "trust": "unsigned",
          "authors": [
            {
              "name": "Christian Peters",
              "role": "author",
              "source": "gem.authors"
            },
            {
              "name": "Jakob Hilden",
              "role": "author",
              "source": "gem.authors"
            }
          ],
          "version": {
            "value": "0.0.1",
            "source": "gem.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "micro-behaviors/fs/enumerate/directory::ruby-recursive-glob",
            "atk": "T1083",
            "conf": 0.85,
            "crit": 3,
            "desc": "Enumerates files with a recursive Ruby glob"
          },
          {
            "id": "metadata/package/testing/harness/runtime::is-test",
            "conf": 0.9,
            "crit": 2,
            "desc": "Test, spec, or fixture file"
          },
          {
            "id": "micro-behaviors/communications/http/endpoints::loopback-http-url-reference",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a loopback HTTP URL"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory-path",
            "conf": 1.0,
            "crit": 1,
            "desc": "File is in common test directory"
          },
          {
            "id": "metadata/package/testing/presence/harness::tests-path-filename",
            "conf": 0.85,
            "crit": 1,
            "desc": "File path or name indicates test code"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File identified as a test by path or name"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-path-basename",
            "conf": 1.0,
            "crit": 1,
            "desc": "Test path basename"
          }
        ]
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 131345,
              "entropy": 7.78
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 24576,
              "peak_region_entropy": 7.83
            }
          }
        },
        "id": 1,
        "mol": "H₂(CmF)",
        "path": "css_splitter-0.0.1.gem!!data.tar.gz",
        "pid": 0,
        "risk": 3,
        "sha": "e2d133011b9c809fa03e31f10a2e60afe2253f2f55995abcc90c4cf34f38d4be",
        "size": 131345,
        "traits": [
          {
            "id": "micro-behaviors/fs/enumerate/directory::ruby-recursive-glob",
            "atk": "T1083",
            "conf": 0.85,
            "crit": 3,
            "desc": "Enumerates files with a recursive Ruby glob"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-path-basename",
            "conf": 1.0,
            "crit": 1,
            "desc": "Test path basename"
          },
          {
            "id": "metadata/package/testing/harness/runtime::is-test",
            "conf": 0.9,
            "crit": 2,
            "desc": "Test, spec, or fixture file"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory-path",
            "conf": 1.0,
            "crit": 1,
            "desc": "File is in common test directory"
          },
          {
            "id": "metadata/package/testing/presence/harness::tests-path-filename",
            "conf": 0.85,
            "crit": 1,
            "desc": "File path or name indicates test code"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File identified as a test by path or name"
          },
          {
            "id": "micro-behaviors/communications/http/endpoints::loopback-http-url-reference",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a loopback HTTP URL"
          }
        ],
        "type": "tar.gz"
      },
      {
        "analysis_gaps": [
          "flow-graph-limited"
        ],
        "ctx": [
          {
            "b": "aARJAqEKoQA%-mLvqfL0azC)tvix=9vL82cAbok#vruj4zxJLivqPO1z/PRoBzb98azC.6y\u0026%o1B0b4qwPA6rxLzu%az$+4wmYo]Bz\u0026piA+eW3wEq%RBywS!B7D}jvpK7:wfu8cvJY8#Abok#vruj4zGu}ev}fB$wnb{]aARJABzbkdo(BMNy+nX4wP]Z[z/fVqz!{LnvruQ5A=9Gp3rgXMB0bBgBAz8mzxK1ty?X0jaARpdaA?EgCowqxy\u0026:Iqv{%g\u0026wN({9xK@r9A+fr6zGGrex(v(razC.nzY*lmB.$Oi3uP\u0026@Abn%8wPF#oxKM09vrb{4Ab]Vfvrc6#C{4csB8V5nB7]91wGUP6AV/7lB7Gxlx(mMaAb]IwvS=y3BrCa5ByuqazxJz1BA.qczve{lo?VWKvp%Tlaxi2=az(4cwO-G0z/fV9x(m#mBzbkdb6dQfA=-GFwn=r[x(k5ivRPE:BAnMMB9g#aayPsll1szyB-8pL3q++Ywozy7efE=2A=VepefE=cB95\u0026NBzb98aztXfwoe(4y?$koxK@q}B-RnmwPI]ny\u0026r%2v\u003c2h$wftV9z*cmBxM58qBz?I9wPz\u003caB95KDxK#44wO=K3B0bNyayMy6vrt{!vrl0jaxi2=ay/tcBAhqoy?mSfxKL^?y?mVgBzbkdx(mB0ze0)2aAz4kB.bSoA%:spBZ]8cvriL\u0026vrMi8pgXR(l1szyB-8pLaxrw\u003evru66p\u0026ZF+BZ]IAax8@(Cox.2B95\u0026NvTf8kvqY^#B.\u003eGdx(mMaBzbkdzeS@@yZKP*wftz%A+e:5x(mMawmoM",
            "ln": 10,
            "col": 11,
            "line": 1
          },
          {
            "b": "z*cmBvriMfvRPE:BAnNkzE:(3zdm6)y?W%7aARpdB7DF8vrt{2z^)D)v@#=mCwhejayYFmx(mH6B0bpqxk7\u0026.zdN*5z!9]wax-S9ay!?$aAz44wft-cA+cw4vScyhavfHVx)a5gqE%uRA+3qbzvgh]zFIpBx(4v4flQ]Awn=GwA:-V#B1Z%iBzk]fA+e:0AS",
            "ln": 837,
            "col": 11,
            "line": 16
          },
          {
            "b": "3jmb6jS)maBAzkmxcpb{vrcE3wc@U#e*9D4aARpday/tbzddr)aAhvtze:OFay/C6vru66vixD0Cox^(x(4\u0026kvq{g4x\u003e7N[x(v(I3lQDlarR^HjALWeA:-V#B0bviCoy:F",
            "ln": 1481,
            "col": 48,
            "line": 26
          },
          {
            "b": "BAxYRwft-mvq{fEaAy[8y\u0026Z.uwPz%9AY=0%BuQ/}A=(mxCwhejat2fUwO=rdw]zYjz/x/jz/fRB3jnNwav*t)Bz\u0026pnBAzE.fe4cWv{%g!z/Z1YgCyHpfcBXvwfueoBTI0waAIa9iTM#LarR^Har\u003c(#y?4y2wGUz\u003cz^^V%iV}NzBTIivaAzgbx(mMaqGVC]aA8cuqEKoQB0h.m3n:vTmSi9Vz*9sCxK@r0B.Lw$y?W=#B0bNyaAITkA=-BmwP?T3z/xAdxcqFrB-FQk",
            "ln": 1714,
            "col": 9,
            "line": 35
          },
          {
            "b": "3mWe@BZ/Rsz/cW}vqfL0axiG9z/PM2y-(5.z!?xRxMOuniXJdgCxUVWvqfL0BAIXzA+O@#e]L=yfa53[jV%]QwNY^{xk8l@aw#SZy\u0026Y{\u003cq/uI:BzkP6B0b:DB-FQkAbYScv{%E[z/cXgz!i#jCxdRtxd+q@z/P@xzEES#y\u003cvdBxK#i}ayPq4ayMyez/^au",
            "ln": 2066,
            "col": 80,
            "line": 43
          },
          {
            "b": "A=VsBvrb{/aARJAv}YB-yANtjaARpdayPkdy?Wx/BzkVhaz+$eazbt7wPGEDnmuWMar\u003e]ox(1[zw*evcz/6u1zE^!}A=(nqx(mMaz/cXtxK@rcwPz%9AXqfDxcpS2wftz]C4CGdAbxf7Bs}xFxd+r8vqfL0aA}Koy-)eeBz(28Bzkk[y\u00261wtwnca7",
            "ln": 2287,
            "col": 3,
            "line": 52
          },
          {
            "b": "x(k5nxK@q}A=leywPw]izxJ$hADL\u0026lBAnNpA=k!qf!$WufFk4if!J!us-nB9v{%l$vqH16az+$eaBd)FAV/pAzxJ!cB8$=5wPF#8x(W={BzMjBx(n3haARpdaz+$eazbt7wGUP9z/3Rxz/{7yv@C)?3uZA7zF78lxK@q:BZ/Rsy\u0026r%0wPv",
            "ln": 2523,
            "col": 7,
            "line": 55
          },
          {
            "b": "wO#2=arUlkwc@VyxK@rbwPJ0gBrC^wy?$k6wGUz7zdN^fvp%c]x(k5sz/{7yy\u0026r@ew[=6)ayP88zF78lxK@r5x(mH6aA7\u003cM3jm)#o(B[(pH!F?fGpgfg=^xEiX\u0026Yrd\u003e@Z",
            "ln": 2914,
            "col": 5,
            "line": 65
          },
          {
            "b": "BS+NkwN({9zY\u0026+iB97\u0026by-)+vvTfLowNY^{aARJAA=(mxBzbkdB7GxnwPw]czxJF3vS=r@x(mL\u003czeS@@e*akfBz8!fwO(GtaA.:pauT:/k67\u003cSzY\u0026X7z6iLgB97\u0026byY",
            "ln": 3770,
            "col": 21,
            "line": 89
          },
          {
            "b": "zE)s1wN({9zY\u003cdnwGUI(BywS!B7DFrx([2hBzbkdv@=c\u003ewO#Q7vqG#(wmYv!zE)u3x(k57vrt{!vrl0jD2mvIax9w\u003cA==2kxcqqfwGV57A+PGmaA}KwxM53nayPq6B.$YcBAnM",
            "ln": 5754,
            "col": 33,
            "line": 148
          },
          {
            "b": "v@#B6zAGN]BuRr1lV)A\u0026wO#QaC{4rHA+/.sw]zYjo)GVmoE{JEz/Z2kA+efDoDW+Ywfs/FoLFPWatURS3oZJ{l$HBHA+PGmx(v(iz!paVz/fVdzGG}b3rgXIay]4}vrz",
            "ln": 5999,
            "col": 41,
            "line": 151
          },
          {
            "b": "vHsk2D[u])wn+@+arV4-eG!\u003ezvHsk2D(%KOu[A@MByxlaA%:3jD[u])y\u0026r}[arV4-eG/1PvR/:*3lQEseIe8^v@=p5Bp6ckD[u])By/Jn3lQEsarR!OeIe8Sx)s-xAS",
            "ln": 6464,
            "col": 8,
            "line": 173
          },
          {
            "b": "z!9A}B0bNrvrrSkxM53fwftt)az$R8wN({1x\u003e}o5AbP/te]\u003ezNawD=+wO=AgwmY*(wO#33w].*b3lQDSv@#BdwM08Hz/PwHiZNm@wGUDcay]4}vrDyde^.}]AbWEN",
            "ln": 7205,
            "col": 10,
            "line": 208
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "view"
            ],
            [
              "",
              "objects"
            ],
            [
              "",
              "Weblog.find"
            ],
            [
              "",
              "weblog.destroy.info"
            ],
            [
              "",
              "f.Display"
            ]
          ],
          "mbr": [
            "Controller.These",
            "README.html",
            "README.html.Getting",
            "README.html.The",
            "Rails.You",
            "Record.This",
            "Weblog.find",
            "application.You",
            "application.app",
            "controllers.Example",
            "controllers.Helpers",
            "controllers.rb",
            "controllers.rb.All",
            "database.Passing",
            "database.Starting",
            "database.yml",
            "database.yml.Starting",
            "debugger.This",
            "debugging.With",
            "development.log",
            "development.log.Rails",
            "directory.Options",
            "directory.vendor",
            "doc.org",
            "environment.Example",
            "environment.To",
            "f.Display",
            "files.Debugging",
            "files.Have",
            "files.This",
            "files.app",
            "fixtures.When",
            "generation.test",
            "getting_started.html",
            "guides.rubyonrails",
            "guides.rubyonrails.org",
            "helpers.This",
            "index.html",
            "index.html.erb",
            "interdependence.This",
            "irb.html",
            "lang.org",
            "lang.org.There",
            "libraries.Basically",
            "methods.You",
            "methods.config",
            "models.rb",
            "models.rb.Models",
            "on.Also",
            "path.public",
            "pattern.This",
            "pine.fm",
            "posts.all",
            "posts.first",
            "posts.inspect",
            "rails.First",
            "running.You",
            "schema.rb",
            "schema.rb.db",
            "separate.Each",
            "server.Also",
            "server.log",
            "server.script",
            "subdirectory.If",
            "tags.The",
            "views.In",
            "views.This",
            "weblog.destroy",
            "weblog.destroy.info",
            "weblogs_helper.rb",
            "weblogs_helper.rb.These",
            "window.Here",
            "wrong.Fortunately",
            "www.railstutorial",
            "www.railstutorial.org",
            "www.ruby",
            "www.rubycentral",
            "www.rubycentral.org"
          ],
          "tgt": [
            "Weblog.find",
            "f.Display",
            "objects",
            "view",
            "weblog.destroy.info"
          ],
          "metrics": {
            "ast": {
              "op.add": 1,
              "op.bor": 34,
              "op.div": 34,
              "op.lor": 2,
              "op.mod": 1,
              "op.mul": 2,
              "op.shr": 2,
              "op.sub": 92,
              "op.land": 7,
              "max_depth": 45,
              "call_count": 6,
              "node_count": 2499,
              "op.floordiv": 8,
              "member_count": 78,
              "op_density.add": 0,
              "op_density.bor": 0.01,
              "op_density.div": 0.01,
              "op_density.lor": 0,
              "op_density.mod": 0,
              "op_density.mul": 0,
              "op_density.shr": 0,
              "op_density.sub": 0.04,
              "op_density.land": 0,
              "max_array_length": 5,
              "max_concat_chain": 3,
              "max_member_depth": 3,
              "op_density.floordiv": 0
            },
            "file": {
              "size": 9208,
              "entropy": 4.75
            },
            "text": {
              "lines": 261,
              "top_char": 101,
              "digit_ratio": 0.01,
              "space_count": 1454,
              "char_entropy": 4.75,
              "unique_chars": 88,
              "top_char_null": 0,
              "string_density": 0.07,
              "top_char_ratio": 0.08,
              "avg_line_length": 34.28,
              "max_line_length": 83,
              "empty_line_ratio": 0.23,
              "last_line_length": 52,
              "whitespace_ratio": 0.19,
              "identifier_density": 4.62,
              "line_length_stddev": 31.19,
              "max_whitespace_run": 7,
              "normalized_string_count": 1.18,
              "repeated_char_sequences": 3,
              "suspicious_comment_ratio": 0.2,
              "suspicious_identifier_ratio": 0.01,
              "normalized_unique_identifiers": 60.04
            },
            "binary": {
              "peak_region_bytes": 8184,
              "peak_region_entropy": 4.83
            },
            "strings": {
              "bytes": 207,
              "count": 19,
              "avg_length": 10.89,
              "max_length": 47,
              "avg_entropy": 2.21,
              "email_count": 2,
              "entropy_stddev": 1.2
            },
            "comments": {
              "chars": 126,
              "count": 5,
              "lines": 5,
              "high_entropy": 1,
              "to_code_ratio": 0.02
            },
            "identifiers": {
              "count": 1206,
              "unique": 482,
              "avg_length": 6.27,
              "max_length": 21,
              "min_length": 1,
              "avg_entropy": 2.26,
              "reuse_ratio": 0.4,
              "length_stddev": 3.08,
              "sequential_names": 6,
              "single_char_count": 6,
              "single_char_ratio": 0.01,
              "high_entropy_count": 1,
              "high_entropy_ratio": 0,
              "all_lowercase_ratio": 0.79,
              "all_uppercase_ratio": 0.01,
              "repeated_char_names": 1
            }
          }
        },
        "id": 2,
        "mol": "H(Cm)",
        "path": "css_splitter-0.0.1.gem!!data.tar.gz!!test/dummy/README.rdoc",
        "pid": 1,
        "risk": 2,
        "sha": "64a9a47d3d0586bc787ef2fa3a8ae07ef67538409a2d09bd3fcc2441ff5f9340",
        "size": 9208,
        "traits": [
          {
            "id": "micro-behaviors/communications/http/url/host::loopback-http-url-reference",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a loopback HTTP URL",
            "spans": [
              [
                1785,
                17
              ]
            ]
          },
          {
            "id": "metadata/file/naming::test-directory-component",
            "conf": 1.0,
            "crit": 2,
            "desc": "Path contains a test-directory name token"
          },
          {
            "id": "metadata/package/testing/presence/fixture::python-tutorial-text",
            "conf": 0.75,
            "crit": 2,
            "desc": "Python tutorial text marker",
            "spans": [
              [
                2114,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/presence/harness::example-directory",
            "conf": 0.9,
            "crit": 2,
            "desc": "File in example directory"
          },
          {
            "id": "metadata/package/testing/presence/path::spec-path-basename",
            "conf": 1.0,
            "crit": 2,
            "desc": "Spec path basename"
          },
          {
            "id": "metadata/lang/natural/vocabulary/content-word::english-edit-verb-token",
            "conf": 0.88,
            "crit": 1,
            "desc": "English edit-action verb token",
            "spans": [
              [
                587,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/content-word::secret-data-term-token",
            "conf": 0.9,
            "crit": 1,
            "desc": "Secret-data term token",
            "spans": [
              [
                5786,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/content-word::sensitive-target-term-token",
            "conf": 0.88,
            "crit": 1,
            "desc": "Secret, security, or environment terminology",
            "uses": [
              6
            ],
            "spans": [
              [
                5786,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                146,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "spans": [
              [
                464,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-3",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"that\"",
            "spans": [
              [
                58,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-4",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"have\"",
            "spans": [
              [
                2335,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                292,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "spans": [
              [
                885,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "spans": [
              [
                179,
                0
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "boPu(zF0P}B-I4oqEKoQB09[?C4\u003e#nzF-%5Bp7Dir:c+Ck$K:GuQWZ\u003cb3=rOar\u003e]sB95Pk3uxY$B.L(cavZ6YwIdLsAa9S{uVoB}xEC5Se?Z:TzeBLKv@Dl%x\u003eG8gzGY-mz/fA6zGEHKvJ)uCaywFBnLzMWuNVt5wPq\u003cbA+cvqA:-V#B1.SDB97=5wO=rf3joWtx(4\u0026yvQS+ZBAg/1wNw}-wNPE/AXqxzzeTPeuVP{$wO#0?A=Sxh3l{V!z^^f0B9hCvz/P}xw[=6)A%+rHA:6.jDQ.Z=wIdIcA=br5wHH[)mOcoxuTCmgflqnPAbP=sfdFC8dLt:Jb3=*jvpJ%[DMWYFD)0DvADL#owGUOcEf{raawuYZwftF#CYX7GwPF#aA=k!qBzbkdwO#c{zE\u003ce?w/%xHBzk]fq*04#z/P}Xi-GWiBvfFTwId?hBzbP6uU0.Wx(mG)kpwN8x)s-xA+eP%vrufCdgdgul1t1JC4BP{AbY-oBuhDZwPI@Xvrl0jw[=HiB-I52Aa9\u003c4auZ\u0026px(4ukwQ5f5zE^9[vrufha$+G3w[=HiB-I5ma$K\u003czuQ^QXmpfyJ3t19=3i",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "require"
            ],
            [
              "",
              "expand_path"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "remove_silencers!"
            ],
            [
              "",
              "backtrace_cleaner"
            ],
            [
              "",
              "each"
            ],
            [
              "",
              "dirname"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "method_defined?"
            ],
            [
              "",
              "fixture_path"
            ],
            [
              "",
              "expand_path"
            ],
            [
              "",
              "rails/test_help"
            ]
          ],
          "mbr": [
            "File.dirname",
            "File.expand_path",
            "Rails.backtrace_cleaner",
            "Rails.backtrace_cleaner.remove_silencers!"
          ],
          "tgt": [
            "backtrace_cleaner",
            "dirname",
            "each",
            "expand_path",
            "fixture_path",
            "method_defined?",
            "remove_silencers!",
            "require"
          ],
          "metrics": {
            "ast": {
              "max_depth": 7,
              "op.concat": 8,
              "call_count": 11,
              "node_count": 119,
              "member_count": 4,
              "max_member_depth": 3,
              "op_density.concat": 0.07
            },
            "file": {
              "size": 469,
              "entropy": 5.16
            },
            "text": {
              "lines": 15,
              "top_char": 101,
              "space_count": 28,
              "char_entropy": 5.16,
              "unique_chars": 55,
              "top_char_null": 0,
              "import_density": 6.67,
              "string_density": 0.4,
              "top_char_ratio": 0.1,
              "avg_line_length": 30.27,
              "max_line_length": 82,
              "empty_line_ratio": 0.27,
              "last_line_length": 3,
              "whitespace_ratio": 0.09,
              "identifier_density": 1.73,
              "line_length_stddev": 27.44,
              "max_whitespace_run": 2,
              "normalized_import_count": 0.26,
              "normalized_string_count": 1.55,
              "suspicious_identifier_ratio": 0.06,
              "normalized_unique_identifiers": 4.1
            },
            "binary": {
              "peak_region_bytes": 469,
              "peak_region_entropy": 5.16
            },
            "imports": {
              "count": 1,
              "third_party_count": 1,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 110,
              "count": 6,
              "avg_length": 18.33,
              "max_length": 41,
              "path_count": 2,
              "avg_entropy": 3.3,
              "entropy_stddev": 0.93
            },
            "comments": {
              "chars": 77,
              "count": 3,
              "lines": 3,
              "to_code_ratio": 0.25
            },
            "identifiers": {
              "count": 26,
              "unique": 16,
              "avg_length": 8.44,
              "max_length": 17,
              "min_length": 1,
              "avg_entropy": 2.42,
              "reuse_ratio": 0.62,
              "length_stddev": 5,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.06,
              "all_lowercase_ratio": 0.44,
              "all_uppercase_ratio": 0.13,
              "double_underscore_count": 1,
              "underscore_prefix_count": 1
            }
          }
        },
        "id": 3,
        "mol": "H(F)",
        "path": "css_splitter-0.0.1.gem!!data.tar.gz!!test/test_helper.rb",
        "pid": 3,
        "risk": 2,
        "sha": "3260447c2b676281ba59f62fbdbab18400f3443f1652ec138499fa64245b26be",
        "size": 469,
        "traits": [
          {
            "id": "micro-behaviors/fs/enumerate/directory::ruby-recursive-glob",
            "atk": "T1083",
            "conf": 0.85,
            "crit": 3,
            "desc": "Enumerates files with a recursive Ruby glob",
            "spans": [
              [
                218,
                48
              ]
            ]
          },
          {
            "id": "metadata/import/ruby/rails/test_help::rails/test_help",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports rails/test_help",
            "spans": [
              [
                136,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                312,
                0
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeiFz6yIPzEEx[b03]*vqfL0a$K{YwPz\u003caz/c:Wa#?hfe\u0026bama$K{SBZ/f3B7/b}uTX42iX-MMh8v3EgD3%sb4ka}uU0O\u003cB0rU3hy{4*vru74Byb",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 1007,
              "entropy": 4.78
            },
            "binary": {
              "peak_region_bytes": 1007,
              "peak_region_entropy": 4.78
            },
            "registry": {
              "age_days": 36,
              "published_at": 1785337361,
              "is_deprecated": 0,
              "downloads_total": 783647479,
              "downloads_recent": 5493253
            }
          }
        },
        "id": 44,
        "path": "rails@8.1.3.1.registry.json",
        "pid": 0,
        "rel": "registry",
        "role": "sidecar",
        "sha": "06b8f9c5f972f5798893aaced1b78353db1d0497e314bddbff39ad879b6387ba",
        "size": 1007,
        "traits": [
          {
            "id": "metadata/registry::widely-installed",
            "conf": 1.0,
            "crit": 1,
            "desc": "Large registry install base (10k+ downloads)",
            "spans": [
              [
                0,
                0
              ]
            ]
          }
        ],
        "type": "registry"
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeiFz6yIPzEEx[b03]TB8$YfAbolgBy/FpefYmGA=U@kzx.a=fFk4if^nd)AckSax(^%0wm5+!b04Cmg=ElFh8^izefXInwNw$RD2\u003ee\u003ch8c^wefU",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 976,
              "entropy": 4.78
            },
            "binary": {
              "peak_region_bytes": 976,
              "peak_region_entropy": 4.78
            },
            "registry": {
              "age_days": 5104,
              "published_at": 1347445701,
              "is_deprecated": 0,
              "downloads_total": 1810361,
              "downloads_recent": 1045872
            }
          }
        },
        "id": 45,
        "path": "css_splitter@0.0.1.registry.json",
        "pid": 0,
        "rel": "registry",
        "role": "sidecar",
        "sha": "2238879f7d5cce40e4c0e69f4e23378a456a9424f425bf8ac95284ea0d2b0f99",
        "size": 976,
        "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"
  }
}