{
  "ml": {
    "v": "7",
    "eng": "2.1.0-rc.2",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.09793222,
        "rte": "az",
        "prob": 0.09793222
      },
      {
        "cls": 0,
        "raw": 0.005282104,
        "rte": "az/zip",
        "prob": 0.005282104
      }
    ],
    "prob": 0.09793222,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.09793221950531006,
        "type": "zip"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000006516774647025159,
        "type": "github-actions"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000009377797141496558,
        "type": "markdown"
      },
      {
        "id": 3,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000029255947083584033,
        "type": "python"
      },
      {
        "id": 4,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00009838739788392559,
        "type": "shell"
      },
      {
        "id": 5,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000012665987014770508,
        "type": "python"
      },
      {
        "id": 6,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000011116266250610352,
        "type": "composerjson"
      },
      {
        "id": 7,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000016848245650180615,
        "type": "json"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-06-20T11:07:17Z"
  },
  "path": "symfony-models-dev-v81.0.zip",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "p!H([3ig5a006qb!lz$N0000000000000@r2(]3(zdWZ7C}A(KwmYN#eO5BoeNZwzg+Z?0fi7%P",
            "ln": 0
          }
        ],
        "mol": "H₂(Cm₂Db)Md(Bk)",
        "sha": "6c054eb5184b6418bb4bdff804d1430bc4547846a320b9302900289547956825",
        "path": "symfony-models-dev-v81.0.zip",
        "risk": 4,
        "size": 253092,
        "type": "zip",
        "facts": {
          "metrics": {
            "file": {
              "size": 253092.0,
              "entropy": 8.0,
              "size_bytes": 253092.0
            },
            "binary": {
              "overall_entropy": 8.0
            },
            "archive": {
              "file_count": 8.0,
              "has_comment": 1.0,
              "comment_size": 40.0,
              "member_count": 12.0,
              "script_count": 3.0,
              "zip_bomb_ratio": 17.23,
              "directory_count": 4.0,
              "executable_count": 2.0,
              "extra_field_size": 108.0,
              "noise_file_count": 0.0,
              "total_compressed": 250914.0,
              "compression.ratio": 0.06,
              "hidden_file_count": 4.0,
              "total_uncompressed": 4268726.0,
              "crc_collision_count": 0.0,
              "entry_comment_count": 0.0,
              "max_filename_length": 62.0,
              "rtlo_filename_count": 0.0,
              "format.regular_count": 8.0,
              "nested_archive_count": 0.0,
              "path_traversal_count": 0.0,
              "symlink_escape_count": 0.0,
              "security.setgid_count": 0.0,
              "security.setuid_count": 0.0,
              "security.sticky_count": 0.0,
              "double_extension_count": 0.0,
              "duplicate_member_count": 0.0,
              "format.directory_count": 4.0,
              "security.symlink_count": 0.0,
              "unicode_filename_count": 0.0,
              "homoglyph_filename_count": 0.0,
              "security.encrypted_count": 0.0,
              "timing.mtime_unique_count": 1.0,
              "timing.mtime_unique_ratio": 0.08,
              "misplaced_executable_count": 0.0,
              "timing.mtime_dominant_count": 12.0,
              "timing.mtime_spread_seconds": 0.0,
              "timing.sentinel_mtime_count": 0.0,
              "security.world_writable_count": 0.0,
              "timing.mtime_dominant_fraction": 1.0,
              "compression.method_counts.stored": 4.0,
              "compression.method_counts.deflate": 8.0
            }
          }
        },
        "traits": [
          {
            "id": "micro-behaviors/fs/build-artifacts::unittest-testcase-context",
            "conf": 1.0,
            "crit": 1,
            "desc": "unittest TestCase cleanup context",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/build/github-actions::contents-write-permission",
            "conf": 0.9200000166893005,
            "crit": 3,
            "desc": "GitHub Actions contents write permission"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File in a test directory",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "micro-behaviors/process/create/subprocess::python-subprocess-io-fields--stderr",
            "atk": "T1059.006",
            "conf": 0.8399999737739563,
            "crit": 1,
            "desc": "Process output/status field names (stderr)",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "micro-behaviors/data/serialize/json::json-load-call",
            "conf": 0.8999999761581421,
            "crit": 3,
            "desc": "Python json.load call",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/download/curl::curl-download-quiet-domain",
            "atk": "T1105",
            "conf": 0.8500000238418579,
            "crit": 3,
            "desc": "Curl quiet download",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "objectives/anti-static/obfuscation/code-metrics/identifiers::python-unittest-testcase-marker",
            "atk": "T1027",
            "mbc": "B0032",
            "conf": 0.949999988079071,
            "crit": 1,
            "desc": "Python unittest TestCase marker",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/package/testing/harness/runtime::is-test",
            "conf": 0.8999999761581421,
            "crit": 2,
            "desc": "Identifies Node.js test files",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/build/github-actions::scheduled-workflow-trigger",
            "conf": 0.8999999761581421,
            "crit": 3,
            "desc": "GitHub scheduled workflow trigger"
          },
          {
            "id": "micro-behaviors/communications/http/download/curl::curl-cmd",
            "atk": "T1105",
            "conf": 0.699999988079071,
            "crit": 3,
            "desc": "curl command",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/file/extension/identity::shell-a",
            "conf": 1.0,
            "crit": 2,
            "desc": "POSIX shell script extension",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/testing/presence/harness::python-test-file",
            "conf": 0.699999988079071,
            "crit": 2,
            "desc": "Python test file suffix",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "objectives/execution/condition/platform::executes-commands",
            "conf": 0.6000000238418579,
            "crit": 3,
            "desc": "Executes external commands or processes",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/download/shell::shell-curl-wget-url-fetch",
            "atk": "T1105",
            "conf": 0.800000011920929,
            "crit": 3,
            "desc": "curl or wget fetches an HTTP URL",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/download/curl::curl-silent",
            "atk": "T1105",
            "conf": 0.800000011920929,
            "crit": 3,
            "desc": "curl silent flags",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/build/github-actions::workflow-dispatch-trigger",
            "conf": 0.8600000143051147,
            "crit": 3,
            "desc": "GitHub workflow_dispatch manual trigger",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "objectives/anti-static/obfuscation/code-metrics/identifiers::python-unittest-import",
            "atk": "T1027",
            "mbc": "B0032",
            "conf": 0.949999988079071,
            "crit": 1,
            "desc": "Python unittest import",
            "from": [
              {
                "file": 5
              }
            ]
          }
        ]
      },
      {
        "ctx": [
          {
            "b": "zEEx[iV}BwwmoN\u003eaz(4cwO=AtwmY{pyiarh3jpY?iTM#LB7n({wozZ1iTM#LarSlUv@=H9iV]!7at$t(asXG-cKH$sCw?Iqw]8yfuU0\u003e(Aa9\u0026#xGuFcAaK6bx(!ufz/fRS3lQE3z/fVdzGG}XaA}\u003cuBy+^^yhWN5iTM#LB-p(1By^GuarR^HA=(nvePkI/aA.dozGH1My*?A%B94:iarR!FBy/AjiTM#LarR^HeG/gSwPG)PvpKy[z/fRHv}YB-yJ1uqkZ1%\u003earR^HarR^HCwhejiTM#LarR^HarR^Hw[u6]xF1smxlc9RBAhIn3jm)#arR^HeG!}tzdL:Jq^\u003c\u0026XaA87baz(4cwO=AtwmY{pyiarh3lQDlarR^HaAzQxiV}{Kaz(4cwO=AtwmY{pyiarhaz(4cwO=AtwmY{pz!@@pyiarh3jm)#arR^HeG!}tzdL:JqGV\u003e1xjVf(zeS@@y\u0026.jIxBk\u003e8arR^HarUYEzAn[Hvrl98vRGZkxjVf(zeS@@y\u0026.jIxBk7?arR^Hat1ZNvqPNpavy6:ze18mvqYP#A+f5#vrl05x\u003ewF$xKL^\u003ewN(b\u003carR^HarR!rzGX5FarR^HarR^HarTfBuSo/]mnt(^bZT\u003eXxk8E3BZ=$Bz!\u0026{4aBOUBarR^HarR^HA=(mXaBBIsarR^HarR^Hazkzgay]g#w/@VSADL#bBrCBswmYN#eO5Boe]2DCzxHnMaz2!iBrAmAarR^HarR^HarUSGBzbPggAZdvzzbKmw[Cy!z!9A}B1RASaz(4cwO=AtwmY{pz!@@pyiarhaz(4cwO=AtwmY{pyiarhau*]3BzU$IA+f5#vrl0!zF%SdB1Rru3lQDlarR^HarR^[qBJ(AnLR=sbQ^RSBzbPggAZdvzzbKmw[Cy!z!9A}B1RASat2fOA+eV{x(mMazeS@@y\u0026.gswP/XAy?bekB8L}szeS@@y\u0026.gswP/XvB8L}B3lQDlarR^HarR!tx(\u003eFcz/ff3xcqtrwPxzvvqPM#b1u0Ix\u003eqf8p\u0026yC!zEWx(AV$\u0026karR^HarR^Hazkzgay/tcw[+)2B-Rbme[F)dx(1[ow)]d.wO%+Lz//Mdv}/H{e]L=ya{]CnarR^HarR^Hxk8DgvpS)\u003ezeS@@y\u0026.gswP/XvB8L}6arR^HarR^HarUrhBrC7izeB0eat4BMb2@O)vru66zeS@@y\u0026.gswP/XvB8L}u3lQDlarR^HarR!2k#Q-\u0026r6:2qbQ^qtBrCWlxcn^xaszsZcM\u003c#)B8M8vjUp?rA+e\u003c2vqPM#D)09lvpQGjzxHU.3lQDlarR^HarR!vw/$q2eQwJ-bUQH5r9@P\u003cm\u003co6Yj0nSUwO}?$arR^HarR^HarR!4moAI@r6:2qb6CW[fD{\u0026DarR^HarR^Haz2wgwEoL5arR^HarR^HarTYNqD3d.pcx\u003eHoHhPRuSorYbx!FxarR^HarR^HarR^Ho*IxEqAVpLrZ/[+nL-8cb}ZV}3lQDlarR^HarR^HawCB5pF%t3DSANkq+o+WbpUr]3lQDlarR^HarR^HazCBgtoCanlq*lrog.(Ga%o2\u003eb6m\u003cFwG\u0026m5j0nSUwO}?$arR^HarR^HarR^HawLvcr9@P\u003cm)e5tbQ+6nk$T{Jas!M?djD(6a{]CnarR^HarR^HarUliB7CX3arR^HarR^HarR^HawLvcr9@P\u003cm)e5tbZSlKn(5uke*I?[o?w8QqxNFjf!1K}3lQDlarR^HarR^Hazbr{arR^HarR^HarUog3lQDlarR^HarR!tx(\u003eFpB-Rj6arR^HarR^HarUrgaAz4fwNPT\u003eay/C6vru66a%Y]Lsx5Tbk$raweIh6UBzLIha%Y]Lsx5Tbk$raweIg\u003cUBy/IBw[=6)atm?NA4=lyy?m3@wNxs[By/ICzdA$",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 1507,
              "entropy": 4.71
            },
            "binary": {
              "peak_region_bytes": 1507,
              "peak_region_entropy": 4.58
            },
            "references": {
              "declared_count": 1,
              "unresolved_count": 0,
              "security_hold_count": 0,
              "unavailable_command_count": 0,
              "unresolved_extension_count": 0
            }
          }
        },
        "id": 1,
        "mol": "H₂(F₂Po₈)Md(Bk₄)",
        "path": "symfony-models-dev-v81.0.zip!!symfony-models-dev-a1c406e/.github/workflows/update-models.yml",
        "pid": 0,
        "refs": [
          {
            "to": "pkg:github/actions/checkout@v4",
            "off": 192,
            "kind": "dependency"
          }
        ],
        "risk": 6,
        "sha": "60fbaecb86c996ba973583b9d37024a1dbd70715ed817946aa2d586bd70ba010",
        "size": 1507,
        "traits": [
          {
            "id": "metadata/build/ci/github-actions::repository-github-script-path",
            "conf": 0.95,
            "crit": 3,
            "desc": "Shell path under .github or actions",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/build/ci/github-actions::workflow-definition-path",
            "conf": 0.99,
            "crit": 3,
            "desc": "GitHub Actions workflow definition path"
          },
          {
            "id": "metadata/build/ci/permission::contents-write-permission",
            "conf": 0.92,
            "crit": 3,
            "desc": "GitHub Actions contents write permission"
          },
          {
            "id": "metadata/build/ci/step::actions-checkout-step",
            "conf": 0.9,
            "crit": 3,
            "desc": "actions/checkout workflow step reference",
            "spans": [
              [
                186,
                25
              ]
            ]
          },
          {
            "id": "metadata/build/ci/step::mutable-version-action-ref",
            "conf": 0.9,
            "crit": 3,
            "desc": "Workflow action uses mutable version tag"
          },
          {
            "id": "metadata/build/ci/trigger::scheduled-workflow-trigger",
            "conf": 0.9,
            "crit": 3,
            "desc": "GitHub scheduled workflow trigger"
          },
          {
            "id": "micro-behaviors/fs/file/copy::cp-command-text",
            "conf": 0.9,
            "crit": 3,
            "desc": "Source contains cp file-copy command",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "micro-behaviors/fs/path/temp::temp-path-segment",
            "conf": 0.75,
            "crit": 3,
            "desc": "Temp or Tmp path segment",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "micro-behaviors/process/argument/file::python-script-command-line",
            "conf": 0.99,
            "crit": 3,
            "desc": "Python command line specifies script path",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "micro-behaviors/process/create/local-exec::shell-interpreter-local-script",
            "atk": "T1059.004",
            "conf": 0.9,
            "crit": 3,
            "desc": "Shell interpreter runs local script file",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "micro-behaviors/process/create/script/file::shell-script-execution",
            "atk": "T1059.004",
            "conf": 0.7,
            "crit": 3,
            "desc": "Executes a shell script file (.sh)",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "micro-behaviors/process/create/shell/git::github-actions-git-push",
            "conf": 0.9,
            "crit": 3,
            "desc": "GitHub Actions pushes a git ref"
          },
          {
            "id": "micro-behaviors/process/create/shell/spawn::command-substitution",
            "conf": 1.0,
            "crit": 3,
            "desc": "Shell command-substitution syntax",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "micro-behaviors/process/create/vcs/git::shell-git-commit",
            "atk": "T1059.004",
            "conf": 0.92,
            "crit": 3,
            "desc": "Commits changes to a Git repository",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "micro-behaviors/process/create/vcs/git::shell-git-push",
            "atk": "T1059.004",
            "conf": 0.92,
            "crit": 3,
            "desc": "Pushes commits to a Git remote",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "micro-behaviors/process/create/vcs/github::gh-release-create-command",
            "conf": 0.95,
            "crit": 3,
            "desc": "GitHub CLI creates release",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "micro-behaviors/process/interpreter/python::python-keyword",
            "conf": 0.7,
            "crit": 3,
            "desc": "Invokes Python interpreter",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/build/ci/step::actions-checkout-yaml",
            "conf": 0.92,
            "crit": 2,
            "desc": "actions/checkout workflow step"
          },
          {
            "id": "metadata/build/ci/trigger::workflow-dispatch-trigger",
            "conf": 0.86,
            "crit": 2,
            "desc": "GitHub workflow_dispatch manual trigger",
            "spans": [
              [
                69,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/path/temp::tmp-path-content",
            "conf": 1.0,
            "crit": 2,
            "desc": "Contains a /tmp/ or /var/tmp/ path",
            "spans": [
              [
                654,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/path/temp::unix-temp",
            "conf": 0.7,
            "crit": 2,
            "desc": "Unix /tmp/ path reference",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/content-word::data-transfer-verb-token",
            "conf": 0.88,
            "crit": 1,
            "desc": "Data-transfer verb token",
            "spans": [
              [
                1407,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/content-word::english-edit-verb-token",
            "conf": 0.88,
            "crit": 1,
            "desc": "English edit-action verb token",
            "spans": [
              [
                6,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/llm/repository-directive::control-action-prose-fragment",
            "conf": 0.88,
            "crit": 1,
            "desc": "Control-action verb followed by prose",
            "spans": [
              [
                360,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/llm/repository-directive::repository-agent-directive-marker",
            "conf": 0.88,
            "crit": 1,
            "desc": "Marks text as an agent directive",
            "spans": [
              [
                1474,
                0
              ]
            ]
          },
          {
            "id": "metadata/build/ci/github-actions::github-ci-runner-script-context",
            "conf": 0.95,
            "crit": 3,
            "desc": "Script running within GitHub Actions runner context",
            "from": [
              {
                "file": 2
              },
              {
                "file": 3
              },
              {
                "file": 4
              }
            ],
            "uses": [
              0,
              1
            ]
          },
          {
            "id": "metadata/build/ci/permission::workflow-or-job-contents-write",
            "conf": 0.92,
            "crit": 3,
            "desc": "Workflow or job grants contents write",
            "uses": [
              2
            ]
          },
          {
            "id": "metadata/build/ci/step::mutable-action-ref",
            "conf": 0.9,
            "crit": 3,
            "desc": "Workflow uses mutable action ref",
            "uses": [
              4
            ]
          }
        ],
        "type": "github_actions"
      },
      {
        "ctx": [
          {
            "b": "p!jz9zeS@@y\u0026.jtwP/g)vpK7YxjRAkjV$}\u003ejV$}\u003ejV$}\u003ejV$}\u003ejV$}\u003ejQIJ}xLzJgA+fidB7]-mA^n^DA=lbnwmY*8vix8?x(55qB8CA9B7/GlaA7\u003cmBzbkdtwXp?wO=AuwmY{\u0026c$)ZAAc15[fkUSrwO=AuwmY{k3pdGWayPslviv{Qze:AmwPw]jvpK7YxjSXrnPV7(vqxB}aARpdazb+jy-)j@Byx07xcqb8aveNwzeS}",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "eO5Boe]2DCzEsP0x(4uk3nTpSnPV7+A+eW3wPF#5av*c/noFw:qE%VQvrl05CwhejayMygwP]nuwPz\u003caz/cXtvp{Y\u003ezE:\u003e#ay/7[zF9J%z!yh6wPIv4x\u003c$^]x9]+7ayO!\u003ewN)DmwO(vewN({5A=lbnwmY!5ayPd#az(4cwO=Auaxi2=aA?spB7]MgazbLdy\u0026sJsaAIahC4CXPaz\u003e?gz/M$fB.#8s3lQDlw]zYjvpS[.BzkVhB0a[ewft-2BywY*ByuqmAaAy0wPF$xv0jmSfKM3.HlrV!B$\u003eQ7u[0SHzddf$AV!?lze:LsCw7M93lQDlzeS@@y\u0026Z.qAV/swz*2\u00269wPz\u0026mvrb]",
            "ln": 535,
            "col": 59,
            "line": 15
          },
          {
            "b": "B0b7ky\u002613laAIahC4CXPaz\u003e?gz/M$zwPz\u003caz/fRsvpS)\u003ezE[2mzeS@@y\u0026Z.qAV/swz*2\u00269wPz\u0026yaz\u003eL4z/M$zwPz\u003caz/fR6x(mD}v{%E\u003caAz4gz*2M9B1OOnB7DD",
            "ln": 879,
            "col": 8,
            "line": 24
          },
          {
            "b": "z*2\u00269wPz\u0026mCw7YbwGV5ovr(N8xcqelz//M2By!#9w].*baAz4gz*2M9B2\u003cTnu%)wKvrl8?v@Dj6z/YGgaAz4kB.L(caAI*Bw]zNjfkUSrwO=AtwmY{Bunj5^3sEmH3jo\u003cFwO@S0az$+maz\u003eL4z/M$zwPz\u003caz/cXiB0bHmy?m3@wN)tmA+fAdwP]nsxK@rbwO+{^B7DFiz//MiaARJAB7F]9Cw7AbaA}mn3uxY{z*2Y5ayX[]z/PziB-p#lvpT7\u0026xd:I#ra]?=u#o*)wO=AtwmY{pyiarh",
            "ln": 1035,
            "col": 10,
            "line": 26
          },
          {
            "b": "ayX[8B-Rb8azCZov@Dm1B-7Yhx(v(iCwhejaARpd3r{COzdWZ7C{2yAawD=+wO=AuwmY{bvSDf[xjUu%xMOunB2\u003e%cxk8E3BZ=$kz/4dGD2meizH0)zx!sguwmYN#eO5BoePtJmBy]Diz7d1yCw7Y2xDRnmz*2\u00269wPF#5aA.NoC4CYnvqE69y*?A$z/PXqxk8K6zF782v}f7\u003eB0bNyayP85aveNwAb](ux\u003eg^}B0a[mvqfK^vR/P#z/b]0z!9A}B1R0mB%80yBz8!9B-.Lsvrui[ay!\u00260vpA}!x([Rywnc9{z*2YjC}p7SA+P2$zF7HyvqYP#AS",
            "ln": 1354,
            "col": 17,
            "line": 40
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 2069,
              "entropy": 4.92
            },
            "text": {
              "lines": 61,
              "top_char": 101,
              "digit_ratio": 0.01,
              "space_count": 238,
              "char_entropy": 4.92,
              "unique_chars": 72,
              "top_char_null": 0,
              "top_char_ratio": 0.09,
              "ascii_art_lines": 1,
              "avg_line_length": 32.92,
              "max_line_length": 92,
              "non_ascii_ratio": 0,
              "empty_line_ratio": 0.25,
              "last_line_length": 3,
              "whitespace_ratio": 0.14,
              "line_length_stddev": 32.21,
              "max_whitespace_run": 1,
              "repeated_char_sequences": 3
            },
            "binary": {
              "peak_region_bytes": 2048,
              "peak_region_entropy": 4.87
            }
          }
        },
        "id": 2,
        "mol": "H(Cm)Md",
        "path": "symfony-models-dev-v81.0.zip!!symfony-models-dev-a1c406e/README.md",
        "pid": 0,
        "risk": 2,
        "sha": "2c9858be95caf43656f0e000cae682faac071f57c02d9abd395625e999321aa6",
        "size": 2069,
        "traits": [
          {
            "id": "metadata/file/naming::uppercase-readme-md-basename",
            "conf": 1.0,
            "crit": 3,
            "desc": "Basename is uppercase README.md"
          },
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL",
            "spans": [
              [
                1418,
                19
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/content-word::english-edit-verb-token",
            "conf": 0.88,
            "crit": 1,
            "desc": "English edit-action verb token",
            "spans": [
              [
                911,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                92,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "spans": [
              [
                606,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                715,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "spans": [
              [
                583,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "spans": [
              [
                47,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/llm/repository-directive::repository-agent-directive-marker",
            "conf": 0.88,
            "crit": 1,
            "desc": "Marks text as an agent directive",
            "spans": [
              [
                1194,
                0
              ]
            ]
          }
        ],
        "type": "markdown"
      },
      {
        "analysis_gaps": [
          "flow-query-incomplete"
        ],
        "ctx": [
          {
            "b": "boXZ.B8\u0026{yx(kOnzGWdwD30.rzzIRza%Gx)ze-{7wGV8szY\u0026[nwmYN#eO5Boe]2DCzxJL9y?mVgvqYP#z/{evB-X:maAIahvqZg3v\u003c2n{vqYZ?y\u0026r@ex(k4/vrcc]z*c7Ka%Fir3tBu@z/P}xyiarh3tBu@z/P}xB9R*l3jprPw/$]dvpQ^9vrufiiTM#LarU(xBz8!nAaJ]nAa9\u003c4diJ5uaz9UwarR^HarR^HA+funA=91mB8L}Gy\u0026r-)c$T[n3jprPw/$P4ze:StwNw$Zw[ADfy?b7tzE[2viTM#LarUPswm6p@z*2\u00269wPz\u0026mjS[/SBsq6zwg?UeD2\u003ew.dgdguarUMkCvbrfz*2\u00269wPz\u0026mjS[/SBsq3rCp)VxD2\u003ew.dgcz8arR!nwmPmZuVp47C4\u003eF#A=Su^",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "arU96wmYpUzeS@@y\u0026ZZZaBwIzarR^HA+f9aC4Ch\u003ezeS@@y\u0026ZZZaBwIz3lQDlazbLjaAeDqzxK1sA=+(6c#S{juVp47C4\u003eF#A=SuIaz$+muVp47C4\u003eF#A=SV\u003c3lQDlarR^HaA87buU{]GaAIaoc#S{jtx0\u003e2xjVfkb5ImewO=AiefGp/dk2yED2\u003ew.dgdguarQ",
            "ln": 432,
            "col": 3,
            "line": 20
          },
          {
            "b": "toX90zeTPewm6g(wmYN#b3+J.arR^HBz(nfy*QQYwmYo]jS[/*z76jizyxuJazbLjaz\u0026lnzxJv#wmYpUzeS@@y\u0026.jLvqH6$B0@E^3lQDlaARKzvqGp\u003ewO(vewN(]DaAIWxc#rEjc#yyQw]zYjz6iLgaAz4gz*2Y5uU%Z(wO=AuC42ifwPGmGdgcz8arR!FwN+",
            "ln": 1325,
            "col": 28,
            "line": 49
          },
          {
            "b": "C4\u003eF#A=TnGarR^HarR^HB7F\u003c6x(v)ge[5ZrwO#3ba%OrSawMG(aw^8%C4\u003eF#A=UG6tY7-dd\u003cc3vzxZYFz!T8qw*e/HdK]^:EjuY\u003cazbLjaAeDqzxJv#wmYpUAb](ux\u003eg^}B15KB3lQDlazCBgA+f9aC4Ch\u003eAb](ux\u003eg^}B2\u003cTJarR^HarR!FwN/*@z/fRGvq{f%zE+dtbo[AQqE%Y-C4Chbp\u0026ZF$x\u003eg^}B6JP/zxZhNar\u003e6da$^RGx(ktha$T]!dTMb.dK(R+w]zYjA3e\u003ejaAz4gz*2Y5uVp47C4\u003eF#A=SVU3jm)#arR)Ko(BMNy\u0026Y}aarR!vw/$I)wmYpUzeS@@y\u0026.SAarR^HarR^Hy?W=#B09Q*tu}NUarR^HarR^",
            "ln": 1956,
            "col": 17,
            "line": 70
          },
          {
            "b": "y\u0026-*1t}4ifarR^HarR^HB7F\u003c6x(v)ge[5ZrwO#3ba%OrSawMG(awD=+wO=A)zD}6UxK@q#z!%ldCwg@caz(4cwO=AgxKM6}ayX[[zxJv#wmYp5azk.kB-p]5ayYQsAb](ux\u003eg^}i:uMczxZhNar\u003e6da$^RGx(ktnx(mH6djCPharR^Hx\u003ewGdwO(vewN]d+z!9A}B2\u003cTJarR^HarR!yx(mH6auZ\u0026Kt).X%arR^HarUomAV/rzx(k5mz/P}",
            "ln": 2377,
            "col": 81,
            "line": 80
          },
          {
            "b": "y\u0026-*1t}4ifarR^HarR^HB7F\u003c6x(v)ge[5ZrwO#3ba%OrSaw#=/z*2Y5awD=+wO=A)zD}6UxK@q#z!%ldCwg@caz(4cwO=AgxKM6}ayX[[zxJ$hzeTPewgO\u003coA=l8twN(])C{46Dz*2\u00269wPx?pzD}66as!MUtY7-ryhW*7c#rQnwPGpH3jm)#arUxgaz#ataAIa7BzkVhB0a[ewft/bwfr3Uaz$+miTM#LarR^HarU-pv@#B6zGvBsAbYv",
            "ln": 2685,
            "col": 83,
            "line": 86
          },
          {
            "b": "w/$C/zEEx[uTB{sjS\u003e}QuU%j=zEl-{iTM#LarU/Fvp%c]jS[tXrDzOYwJy@XB9R*Vvrc17tqfuhax{AHvSD3*yIvW0t{8mFy?bekB8L}WauTKMCp)SKz/d-.3jm)#arU9kxlbgUaAI*He[5^kC3uWZt).X%arUclwNPv*zF9r[z!9A4jS)j5y\u0026:d{arR^Hx\u003ewF@A+xCovqYP#vrc14tqft9jV%]ieIgBLwNPv*zF7dO3lQDlarR^HayYw5vqxN{xj2H]wmV(Daxix7wEoL5arR^HarU9kxlbgUayPq6B6yvWt)Z]YarR!vw/$]3zyw}lxlbHAaW3@6iTM#LarR^HarUSzx(n2vB-Q#7wH[%ox(4uzB9R*VB97@7A=JPoarR^HarR^HB9R*VwQ4{hc]0dT3lQDlaA87bauZ\u0026-z^^f8vrc14tqfti3lQDlaz$+mauZ\u0026-z^^f8vrc14tqozj3lQDlaAz4mB.(dxjS[lMze:StwNw$Zw[ADfy?b7tzE[2v3jm)#arUxgayYw5vqxN{xj2H]wmW!earR^HarR^HAb]VgBsntPAS",
            "ln": 2990,
            "col": 2,
            "line": 95
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "open"
            ],
            [
              "",
              "json.load"
            ],
            [
              "",
              "set"
            ],
            [
              "",
              "old.keys"
            ],
            [
              "",
              "set"
            ],
            [
              "",
              "new.keys"
            ],
            [
              "",
              "sorted"
            ],
            [
              "",
              "sorted"
            ],
            [
              "",
              "sorted"
            ],
            [
              "",
              "set"
            ],
            [
              "",
              "set"
            ],
            [
              "",
              "sorted"
            ],
            [
              "",
              "sorted"
            ],
            [
              "",
              "bool"
            ],
            [
              "",
              "sum"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "added_models.values"
            ],
            [
              "",
              "sum"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "removed_models.values"
            ],
            [
              "",
              "parts.append"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "parts.append"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "parts.append"
            ],
            [
              "",
              "parts.append"
            ],
            [
              "",
              "sections.append"
            ],
            [
              "",
              "sections.append"
            ],
            [
              "",
              "sections.append"
            ],
            [
              "",
              "sorted"
            ],
            [
              "",
              "added_models.keys"
            ],
            [
              "",
              "lines.append"
            ],
            [
              "",
              "sections.append"
            ],
            [
              "",
              "sorted"
            ],
            [
              "",
              "removed_models.keys"
            ],
            [
              "",
              "lines.append"
            ],
            [
              "",
              "sections.append"
            ],
            [
              "",
              "sections.append"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "sys.exit"
            ],
            [
              "",
              "load"
            ],
            [
              "",
              "load"
            ],
            [
              "",
              "compute_diff"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "is_breaking"
            ],
            [
              "",
              "format_diff"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "json"
            ],
            [
              "",
              "sys"
            ]
          ],
          "mbr": [
            "added_models.keys",
            "added_models.values",
            "json.load",
            "lines.append",
            "new.keys",
            "old.keys",
            "parts.append",
            "removed_models.keys",
            "removed_models.values",
            "result.added_models",
            "result.added_providers",
            "result.removed_models",
            "result.removed_providers",
            "sections.append",
            "sys.argv",
            "sys.exit",
            "sys.stderr"
          ],
          "tgt": [
            "added_models.keys",
            "added_models.values",
            "bool",
            "compute_diff",
            "format_diff",
            "is_breaking",
            "json.load",
            "len",
            "lines.append",
            "load",
            "new.keys",
            "old.keys",
            "open",
            "parts.append",
            "print",
            "removed_models.keys",
            "removed_models.values",
            "sections.append",
            "set",
            "sorted",
            "sum",
            "sys.exit"
          ],
          "funcs": [
            [
              "load",
              134
            ],
            [
              "compute_diff",
              206
            ],
            [
              "is_breaking",
              1021
            ],
            [
              "format_diff",
              1121
            ]
          ],
          "metrics": {
            "ast": {
              "op.add": 7,
              "op.lor": 1,
              "op.sub": 4,
              "op.band": 1,
              "op.land": 2,
              "max_depth": 15,
              "call_count": 60,
              "node_count": 1192,
              "member_count": 17,
              "op_density.add": 0.01,
              "op_density.lor": 0,
              "op_density.sub": 0,
              "op_density.band": 0,
              "op_density.land": 0,
              "max_concat_chain": 2,
              "max_member_depth": 2
            },
            "file": {
              "size": 3582,
              "entropy": 4.6
            },
            "text": {
              "lines": 117,
              "top_char": 101,
              "digit_ratio": 0,
              "space_count": 736,
              "char_entropy": 4.6,
              "unique_chars": 62,
              "top_char_null": 0,
              "import_density": 1.71,
              "string_density": 0.36,
              "top_char_ratio": 0.08,
              "avg_line_length": 29.62,
              "max_line_length": 132,
              "empty_line_ratio": 0.24,
              "last_line_length": 25,
              "whitespace_ratio": 0.24,
              "identifier_density": 1.91,
              "line_length_stddev": 27.82,
              "max_whitespace_run": 1,
              "normalized_import_count": 0.18,
              "normalized_string_count": 3.88,
              "repeated_char_sequences": 5,
              "suspicious_string_ratio": 0.05,
              "normalized_function_count": 0.37,
              "imports_to_functions_ratio": 0.5,
              "strings_to_functions_ratio": 10.5,
              "suspicious_identifier_ratio": 0.06,
              "normalized_unique_identifiers": 7.13,
              "identifiers_to_functions_ratio": 12.25
            },
            "binds": {
              "count": 29
            },
            "binary": {
              "peak_region_bytes": 3582,
              "peak_region_entropy": 4.67
            },
            "source": {
              "function_count": 4
            },
            "imports": {
              "count": 2,
              "stdlib_count": 2,
              "stdlib_ratio": 1
            },
            "strings": {
              "bytes": 788,
              "count": 42,
              "shell": 2,
              "avg_length": 18.76,
              "max_length": 82,
              "avg_entropy": 2.51,
              "entropy_stddev": 1.34
            },
            "comments": {
              "chars": 51,
              "count": 4,
              "lines": 4,
              "to_code_ratio": 0.04
            },
            "functions": {
              "count": 4,
              "density": 3.42,
              "avg_params": 1.75,
              "code_ratio": 0.68,
              "max_params": 3,
              "length_stddev": 18.93,
              "avg_name_length": 9.5,
              "avg_length_lines": 19.75,
              "max_length_lines": 48,
              "min_length_lines": 2,
              "avg_param_name_length": 4
            },
            "identifiers": {
              "count": 224,
              "unique": 49,
              "avg_length": 6.47,
              "max_length": 17,
              "min_length": 1,
              "avg_entropy": 2.17,
              "reuse_ratio": 0.22,
              "length_stddev": 4.03,
              "sequential_names": 3,
              "single_char_count": 3,
              "single_char_ratio": 0.06,
              "high_entropy_count": 1,
              "high_entropy_ratio": 0.02,
              "all_lowercase_ratio": 1,
              "double_underscore_count": 1,
              "underscore_prefix_count": 1
            }
          }
        },
        "id": 3,
        "mol": "H₂(DbPo₂)",
        "path": "symfony-models-dev-v81.0.zip!!symfony-models-dev-a1c406e/bin/diff_models.py",
        "pid": 0,
        "risk": 3,
        "sha": "2d100236df15d1a97ea4bd7c1469ebe8339dad6d386056afe32894014924ba9e",
        "size": 3582,
        "traits": [
          {
            "id": "micro-behaviors/data/parse/json::json-load-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Python json.load call",
            "spans": [
              [
                191,
                9
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/exit/terminate::python-sys-exit-symbol",
            "conf": 0.84,
            "crit": 3,
            "desc": "Python sys.exit symbol",
            "spans": [
              [
                3302,
                8
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/fd/stdio::python-stderr-stream-name",
            "conf": 0.84,
            "crit": 3,
            "desc": "Python references the stderr stream",
            "spans": [
              [
                3286,
                6
              ]
            ]
          },
          {
            "id": "metadata/file/extension/identity::py",
            "conf": 1.0,
            "crit": 2,
            "desc": "File uses a Python artifact extension"
          },
          {
            "id": "metadata/import/python/json::json",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports json",
            "spans": [
              [
                116,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/sys::sys",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sys",
            "spans": [
              [
                128,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/content-word::data-access-verb-token",
            "conf": 0.88,
            "crit": 1,
            "desc": "Data-access verb token",
            "spans": [
              [
                3264,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "spans": [
              [
                60,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-4",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"have\"",
            "spans": [
              [
                2449,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                481,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "spans": [
              [
                154,
                0
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "boXZHx(kOkvrl8?B7GCoeOf6yaAh4lwObv+yZHIqnM4X}bQ^ekar\u00266Vwnc74vqPM#a%X\u0026^diY(YclNnKwgnYfv%8*dat4hDq+OrEBAzFyiXJd6z!9A}B1R0mB$Woyx!Bdwz/cXBazL)seMi=Aau*[(bT+j4fd[\u003egzeS@@y\u0026.gswP/XvB8L}GBzU$v3t\u003c@ea%YMFqzfTPfkUSrwO=AtwmY{pyiarhe{7@Ha%n6Pl}Hofe?O!]z!9A}B1H{lB$NJJz/c:a",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "set"
            ],
            [
              "",
              "cd"
            ],
            [
              "",
              "dirname"
            ],
            [
              "",
              "pwd"
            ],
            [
              "",
              "curl"
            ],
            [
              "",
              "jq"
            ],
            [
              "",
              "mv"
            ]
          ],
          "tgt": [
            "cd",
            "curl",
            "dirname",
            "jq",
            "mv",
            "pwd",
            "set"
          ],
          "metrics": {
            "ast": {
              "max_depth": 11,
              "call_count": 7,
              "node_count": 78
            },
            "file": {
              "size": 208,
              "entropy": 4.96
            },
            "text": {
              "lines": 6,
              "top_char": 46,
              "digit_ratio": 0.01,
              "space_count": 16,
              "char_entropy": 4.96,
              "unique_chars": 43,
              "top_char_null": 0,
              "string_density": 0.67,
              "top_char_ratio": 0.07,
              "avg_line_length": 33.67,
              "max_line_length": 80,
              "empty_line_ratio": 0.17,
              "last_line_length": 58,
              "whitespace_ratio": 0.11,
              "identifier_density": 4.17,
              "line_length_stddev": 27.9,
              "max_whitespace_run": 1,
              "normalized_string_count": 1.63,
              "suspicious_string_ratio": 0.25,
              "normalized_unique_identifiers": 5.8
            },
            "binds": {
              "count": 1
            },
            "binary": {
              "peak_region_bytes": 208,
              "peak_region_entropy": 4.96
            },
            "strings": {
              "bytes": 107,
              "count": 4,
              "shell": 1,
              "avg_length": 26.75,
              "max_length": 30,
              "avg_entropy": 3.94,
              "entropy_stddev": 0.07
            },
            "comments": {
              "chars": 10,
              "count": 1,
              "lines": 1,
              "to_code_ratio": 0.2
            },
            "identifiers": {
              "count": 25,
              "unique": 15,
              "avg_length": 4.93,
              "max_length": 27,
              "min_length": 1,
              "avg_entropy": 1.62,
              "reuse_ratio": 0.6,
              "length_stddev": 6.21,
              "has_digit_ratio": 0.07,
              "single_char_count": 2,
              "single_char_ratio": 0.13,
              "high_entropy_count": 1,
              "high_entropy_ratio": 0.07,
              "all_lowercase_ratio": 0.53,
              "all_uppercase_ratio": 0.07
            }
          }
        },
        "id": 4,
        "mol": "H₃(Cm₄FPo)",
        "path": "symfony-models-dev-v81.0.zip!!symfony-models-dev-a1c406e/bin/get_models.sh",
        "pid": 0,
        "risk": 4,
        "sha": "848f4282e1a19b9d3996a5aa460007a0872d6000e9d17da38605a02fcde4075a",
        "size": 208,
        "supp": [
          {
            "by": [
              {
                "id": "micro-behaviors/communications/http/download/curl::curl-output-redirect",
                "spans": [
                  [
                    68,
                    80
                  ]
                ]
              }
            ],
            "id": "micro-behaviors/communications/http/curl::curl-silent-stdout",
            "crit": "notable",
            "kind": "unless"
          }
        ],
        "traits": [
          {
            "id": "micro-behaviors/communications/http/curl::curl-command-call",
            "conf": 0.96,
            "crit": 3,
            "desc": "Shell invokes the curl command",
            "spans": [
              [
                68,
                4
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/curl::curl-command-remote-url",
            "conf": 0.85,
            "crit": 3,
            "desc": "curl command names a remote HTTP(S) URL",
            "spans": [
              [
                68,
                29
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/curl::curl-command-url-or-option",
            "conf": 0.7,
            "crit": 3,
            "desc": "curl command includes URL or option",
            "spans": [
              [
                67,
                11
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/curl::curl-location-option-text",
            "conf": 0.96,
            "crit": 3,
            "desc": "Curl command requests redirect following",
            "spans": [
              [
                68,
                10
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/curl::curl-s-flag",
            "conf": 0.6,
            "crit": 3,
            "desc": "curl silent flag (-s)",
            "spans": [
              [
                68,
                10
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/curl::curl-silent",
            "conf": 0.92,
            "crit": 3,
            "desc": "curl command uses silent or fail flags",
            "uses": [
              0,
              6
            ],
            "spans": [
              [
                68,
                10
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/curl::curl-silent-fail-flags-text",
            "conf": 0.86,
            "crit": 3,
            "desc": "curl text contains silent or fail flags",
            "spans": [
              [
                68,
                10
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/curl::curl-silent-short-flag-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "Curl silent flag with remote URL",
            "spans": [
              [
                68,
                19
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/download/curl::curl-fail-silent-url-reference",
            "conf": 1.0,
            "crit": 3,
            "desc": "References curl flags and HTTP URL",
            "spans": [
              [
                68,
                19
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/download/curl::curl-output-redirect",
            "atk": "T1105",
            "conf": 0.8,
            "crit": 3,
            "desc": "curl output redirected to file",
            "spans": [
              [
                68,
                80
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/request/client::curl-wget-command-position",
            "conf": 0.9,
            "crit": 3,
            "desc": "curl/wget in shell command position",
            "spans": [
              [
                68,
                5
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/url/reference::shell-http-url-reference",
            "conf": 0.85,
            "crit": 3,
            "desc": "HTTP or HTTPS URL reference",
            "spans": [
              [
                79,
                27
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/directory/chdir::shell-change-directory",
            "conf": 0.95,
            "crit": 3,
            "desc": "Shell changes working directory",
            "spans": [
              [
                38,
                2
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/create/shell/spawn::command-substitution",
            "conf": 1.0,
            "crit": 3,
            "desc": "Shell command-substitution syntax",
            "spans": [
              [
                36,
                30
              ],
              [
                42,
                15
              ]
            ]
          },
          {
            "id": "metadata/file/extension/identity::shell-a",
            "conf": 1.0,
            "crit": 2,
            "desc": "POSIX shell script extension"
          }
        ],
        "type": "shell"
      },
      {
        "analysis_gaps": [
          "flow-graph-limited"
        ],
        "ctx": [
          {
            "b": "boXZ.B8\u0026{yx(kOnzGWdwD30.rzzIRza%G#$B98ECw]zYjwnbT/uU%Z(wO=AuAcT5Wa%Ev3x(d*cA=-BDzFsimwPI@2w].*bay]g#w)Yy[wmYN#azCXiz/P}xv@Dj6B-.h4wnbT/efFLyA=2lbuU0\u003e.w?k6sB6\u0026x%wNPv*zF6p-3s^)XB8@E6wPI@Xz/6DoBy^\u003cOw[ADlzFsimwPI@CraQb)lT+4Edlm!UarR!qwO96bwPI%2x\u003eg^)Bzkk[y::voy?taS3lQDlarR^Hay[]5vivYQDM)zMiV@+[zeS@@y\u0026Z^YaBtqHf^nU3DWQr\u003cEf}8tarR^HarUYoB9hqvauZ\u0026Sz/6DoBy!/\u0026x\u003ey%9wmoN*efFFiByuQ9arR^HarR^HB7Gf1e[5*xwPz(YADLYac#@)uB.(e7b4k1)wN\u003e",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "aAIagw?EIkB7Gxlmr9DUy::snB9hqvtoX90zeTPewm6g(wmYN#b3=-xDWNsI3lQDlay]4}aARgoByeD!wmYpUAb](ux\u003eg^}d05%ow*]+FarR^HarR^Hz!@@bjS]7}A4@K$aBtqHz!9A}B0rT/DM)qYb03\u0026[EslJ(3lQDlarR^Haz$+mauZ\u0026]b5/mXiV@+[zeS@@y\u0026Z^YaBtqHf^nU3",
            "ln": 470,
            "col": 8,
            "line": 15
          },
          {
            "b": "y?tqdB8$]kBvyg(vqEujwPJ0gBxY}$wmPmZuU%Z(wO=Ait}vaBEjkHgarR^HwmYu}By/JnuVGZ{z*2Y5uVp47C4\u003eF#AWV0uy?taS3lQDlarR^HaA87bauZ\u0026]b5/mXiV@+[zeS@@y\u0026Z^YaBtqHf^nU3DWQr\u003cefDcQg9O+4DM)rBwmYN#b03\u0026[b5G7ViV@=$EslIJarR^HarR^Hzu",
            "ln": 842,
            "col": 11,
            "line": 23
          },
          {
            "b": "e[5*xwPz(YADLYac#@)uB.(e7b64miz*2Y5uU%Z(wO=Ait}vaBEjkHgarR^HwmYu}By/JnuTWFQwN]d+z!9A}d05%ow*]+FarR^HarR^Hz!@@bjS]7}A3vs=DM)rBwmYN#b03\u0026[b5G4UiV@=$EslIJarR^HarR^HzE[2mjS]7}A3vs=DM)rBwmYN#b03\u0026[b5G4UiV@=$",
            "ln": 1213,
            "col": 13,
            "line": 31
          },
          {
            "b": "e[5*xwPz(YADLYac#@)uB.(e7b64miz*2Y5uU%Z(wO=Ait}vaBEjkHgarR^HwmYu}By/JnuVGZ{z*2Y5uU%Z(wO-=owO+%ciTM#LarR^HarUPswfs2TDM)zMiV@+[zeS@@y\u0026Z^YaBtqHf^nU3DWNB/b5G7ViV@=$EslIJarR^HarR^HzE[2mjS]7}A3vs=DM)rBwmYN#b02",
            "ln": 1503,
            "col": 13,
            "line": 38
          },
          {
            "b": "y?tqdB8$]kBvyg(vqEujwPJ0gBxY}$wmPmZuU%Z(wO=Ait}vaBEjkHgarR^HwmYu}By/JnuVp47C4\u003eF#A:K38BzbPnBye)6wmYN#uU:j#d05%ow*]+FarR^HarR^Hz!@@bjS]7}A3vs=DWQqHarR^HarR^HzE[2mjS]7}A3vs=DM)rBwmYN#b03\u0026[b5G4UiV@=$EslIJarR^HarR^HA+frmy\u0026*^.",
            "ln": 1795,
            "col": 11,
            "line": 45
          },
          {
            "b": "BZY8mA+frmy\u0026\u0026(9vpS[Wwm6g(wmYN#b3=-xDM)zMiV}SJz80kuEjkHgarR^HwmYu}By/JnuT[1\u003evRGZ\u003ewm5?WvqYZ?B0#9vy?taS3lQDlarR^HaA87bauZ\u0026]b5/mXiV@+[zeS@@y\u0026Z^YaBtqHf^nU3DWQr\u003cefDcQg9O+4DM)rBwmYN#b03\u0026[b5G7ViV@=$EslIJarR^HarR^Hzu",
            "ln": 2016,
            "col": 22,
            "line": 51
          },
          {
            "b": "ax{4bgA{aMdgdguarR^HarU-py?tqdB8$]kBvyg(vqEujwPJ0gBxY@fwO(vewN]d+z!9A}B0s)vaBwI=3jmbIy*?yaaxh][Bv*KuA+eV{x(mMiB-7]nBy/Jne(Vz6BvfFTwHPUEarR^HwmYu}By/JnuTWFQx([6czGxf6zFTODB7Gf1dlm!UarR^HarR!EwPJ0gBrAZ?DM()ewmYpUAb](ux\u003eg^}B0rT/toX2gt}v9xA+f9aC4Ch\u003eAb](ux\u003eg^}B0rT/tu@^5b4k1)wN]d+z!9A}B0rT/DM)zMiV}S",
            "ln": 2474,
            "col": 56,
            "line": 59
          },
          {
            "b": "zeTPewm6g(wmYN#b03\u0026[EshCBarR^HarR!FwO+%hvrlH3A=:=Vy\u0026:eox(^S\u003cA+eV{x(mMiA+frmy\u0026?9P3jmbIy*?yaaxh][BvHg?zddJOx\u003ey%9B-7]nBy/Jne(Vz6BvfFTwHPUEarR^HwmYu}By/JnuUK4ZzGGP5vqEukwO+%ciTM#LarR^HarUi6ByupPaBtqKb03\u0026[b5ImewO=AiiV@+[z80j}aBwJ+EshCBarR^HarR!EwPJ0gBrAZ?v@Dj6B-.h4wnbT/c$D+dvjSKivrt{b3lQDlarR^HaAI8",
            "ln": 3297,
            "col": 90,
            "line": 77
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "compute_diff"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "compute_diff"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "compute_diff"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "compute_diff"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "compute_diff"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "compute_diff"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "compute_diff"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "self.assertFalse"
            ],
            [
              "",
              "is_breaking"
            ],
            [
              "",
              "self.assertTrue"
            ],
            [
              "",
              "is_breaking"
            ],
            [
              "",
              "self.assertTrue"
            ],
            [
              "",
              "is_breaking"
            ],
            [
              "",
              "self.assertFalse"
            ],
            [
              "",
              "is_breaking"
            ],
            [
              "",
              "compute_diff"
            ],
            [
              "",
              "self.assertEqual"
            ],
            [
              "",
              "format_diff"
            ],
            [
              "",
              "compute_diff"
            ],
            [
              "",
              "self.assertIn"
            ],
            [
              "",
              "format_diff"
            ],
            [
              "",
              "compute_diff"
            ],
            [
              "",
              "format_diff"
            ],
            [
              "",
              "self.assertIn"
            ],
            [
              "",
              "self.assertNotIn"
            ],
            [
              "",
              "compute_diff"
            ],
            [
              "",
              "format_diff"
            ],
            [
              "",
              "self.assertIn"
            ],
            [
              "",
              "self.assertNotIn"
            ],
            [
              "",
              "compute_diff"
            ],
            [
              "",
              "format_diff"
            ],
            [
              "",
              "self.assertIn"
            ],
            [
              "",
              "compute_diff"
            ],
            [
              "",
              "format_diff"
            ],
            [
              "",
              "self.assertIn"
            ],
            [
              "",
              "self.assertIn"
            ],
            [
              "",
              "unittest.main"
            ],
            [
              "diff_models",
              "compute_diff"
            ],
            [
              "",
              "diff_models"
            ],
            [
              "diff_models",
              "format_diff"
            ],
            [
              "diff_models",
              "is_breaking"
            ],
            [
              "",
              "unittest"
            ]
          ],
          "mbr": [
            "result.added_models",
            "result.added_providers",
            "result.removed_models",
            "result.removed_providers",
            "self.assertEqual",
            "self.assertFalse",
            "self.assertIn",
            "self.assertNotIn",
            "self.assertTrue",
            "unittest.TestCase",
            "unittest.main"
          ],
          "tgt": [
            "compute_diff",
            "format_diff",
            "is_breaking",
            "self.assertEqual",
            "self.assertFalse",
            "self.assertIn",
            "self.assertNotIn",
            "self.assertTrue",
            "unittest.main"
          ],
          "funcs": [
            [
              "test_identical",
              183
            ],
            [
              "test_added_provider",
              523
            ],
            [
              "test_removed_provider",
              890
            ],
            [
              "test_added_model",
              1261
            ],
            [
              "test_removed_model",
              1551
            ],
            [
              "test_provider_without_models_key",
              1843
            ],
            [
              "test_combined_changes",
              2064
            ],
            [
              "test_additions_only",
              2586
            ],
            [
              "test_removed_provider",
              2789
            ],
            [
              "test_removed_model",
              2983
            ],
            [
              "test_no_changes",
              3181
            ],
            [
              "test_identical",
              3409
            ],
            [
              "test_metadata_only_change",
              3589
            ],
            [
              "test_added_provider_not_in_model_section",
              3856
            ],
            [
              "test_removed_provider_not_in_model_section",
              4165
            ],
            [
              "test_summary_line",
              4474
            ],
            [
              "test_model_section_grouped_by_provider",
              4751
            ]
          ],
          "metrics": {
            "ast": {
              "max_depth": 16,
              "call_count": 56,
              "node_count": 2310,
              "member_count": 11,
              "max_array_length": 1,
              "max_member_depth": 2
            },
            "file": {
              "size": 5163,
              "entropy": 4.62
            },
            "text": {
              "lines": 126,
              "top_char": 101,
              "digit_ratio": 0.02,
              "space_count": 1007,
              "char_entropy": 4.62,
              "unique_chars": 57,
              "top_char_null": 0,
              "import_density": 3.97,
              "string_density": 1.21,
              "top_char_ratio": 0.08,
              "avg_line_length": 39.98,
              "max_line_length": 120,
              "empty_line_ratio": 0.18,
              "last_line_length": 19,
              "whitespace_ratio": 0.22,
              "identifier_density": 2.04,
              "line_length_stddev": 25.27,
              "max_whitespace_run": 1,
              "normalized_import_count": 0.45,
              "normalized_string_count": 13.54,
              "suspicious_string_ratio": 0.01,
              "normalized_function_count": 1.51,
              "imports_to_functions_ratio": 0.29,
              "strings_to_functions_ratio": 8.94,
              "normalized_unique_identifiers": 5.16,
              "identifiers_to_functions_ratio": 2.12
            },
            "binds": {
              "count": 45
            },
            "binary": {
              "peak_region_bytes": 5120,
              "peak_region_entropy": 4.66
            },
            "source": {
              "class_count": 3,
              "function_count": 14
            },
            "imports": {
              "count": 5,
              "stdlib_count": 1,
              "stdlib_ratio": 0.2,
              "third_party_count": 4,
              "third_party_ratio": 0.8
            },
            "strings": {
              "bytes": 954,
              "count": 152,
              "shell": 2,
              "avg_length": 6.28,
              "max_length": 29,
              "avg_entropy": 1.75,
              "empty_count": 1,
              "entropy_stddev": 1.14
            },
            "comments": {
              "chars": 21,
              "count": 1,
              "lines": 1,
              "to_code_ratio": 0.01
            },
            "functions": {
              "count": 17,
              "density": 13.49,
              "avg_params": 1,
              "code_ratio": 0.75,
              "max_params": 1,
              "length_stddev": 1.68,
              "avg_name_length": 22.94,
              "avg_length_lines": 5.53,
              "max_length_lines": 8,
              "min_length_lines": 3,
              "high_entropy_names": 6,
              "avg_param_name_length": 4
            },
            "identifiers": {
              "count": 257,
              "unique": 36,
              "avg_length": 14.72,
              "max_length": 42,
              "min_length": 3,
              "avg_entropy": 2.94,
              "reuse_ratio": 0.14,
              "length_stddev": 9.9,
              "high_entropy_count": 9,
              "high_entropy_ratio": 0.25,
              "all_lowercase_ratio": 0.75,
              "double_underscore_count": 1,
              "underscore_prefix_count": 1
            }
          }
        },
        "id": 5,
        "mol": "Md(Pa)",
        "path": "symfony-models-dev-v81.0.zip!!symfony-models-dev-a1c406e/bin/test_diff_models.py",
        "pid": 0,
        "risk": 2,
        "sha": "2677760e09b167466e7e10a60c63dcd2080901ffc06b7f2c2f454ae3e44403dd",
        "size": 5163,
        "supp": [
          {
            "by": [
              {
                "id": "metrics"
              }
            ],
            "id": "metadata/file/profile/identifier-population::low-identifier-reuse",
            "crit": "notable",
            "kind": "unless"
          }
        ],
        "traits": [
          {
            "id": "metadata/package/testing/harness/unit::python-unittest-import",
            "conf": 0.95,
            "crit": 3,
            "desc": "Python unittest import",
            "spans": [
              [
                54,
                17
              ]
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::python-unittest-lifecycle-marker",
            "conf": 1.0,
            "crit": 3,
            "desc": "Python unittest class or cleanup-hook marker",
            "spans": [
              [
                159,
                17
              ]
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::python-unittest-testcase-marker",
            "conf": 0.95,
            "crit": 3,
            "desc": "Python unittest TestCase marker",
            "spans": [
              [
                134,
                44
              ],
              [
                2538,
                43
              ],
              [
                3361,
                43
              ]
            ]
          },
          {
            "id": "metadata/file/extension/identity::py",
            "conf": 1.0,
            "crit": 2,
            "desc": "File uses a Python artifact extension"
          },
          {
            "id": "metadata/import/python/diff_models/compute_diff::compute_diff",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports compute_diff from diff_models",
            "spans": [
              [
                96,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/diff_models/format_diff::format_diff",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports format_diff from diff_models",
            "spans": [
              [
                110,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/diff_models/is_breaking::is_breaking",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports is_breaking from diff_models",
            "spans": [
              [
                123,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/diff_models::diff_models",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports diff_models",
            "spans": [
              [
                77,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/unittest::unittest",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports unittest",
            "spans": [
              [
                63,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/presence/harness::python-test-file",
            "conf": 0.7,
            "crit": 2,
            "desc": "Python test file suffix"
          },
          {
            "id": "metadata/package/testing/presence/harness::python-test-file-content",
            "conf": 0.8,
            "crit": 2,
            "desc": "Python test source content",
            "spans": [
              [
                135,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/presence/harness::python-test-path",
            "conf": 0.9,
            "crit": 2,
            "desc": "Python file in a test path or with a test filename",
            "uses": [
              9
            ]
          },
          {
            "id": "metadata/package/testing/presence/harness::unittest-module",
            "conf": 0.7,
            "crit": 2,
            "desc": "References the Python unittest module",
            "spans": [
              [
                63,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/presence/harness::verified-python-test-file",
            "conf": 0.9,
            "crit": 2,
            "desc": "Test-located file containing Python test code",
            "uses": [
              10,
              11
            ],
            "spans": [
              [
                135,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/scripted::pytest-test-func",
            "conf": 0.8,
            "crit": 2,
            "desc": "Python test function",
            "spans": [
              [
                4751,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                32,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/source/declaration::class-with-base",
            "conf": 0.95,
            "crit": 1,
            "desc": "Python class declared with a base class",
            "spans": [
              [
                137,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::python-unittest-test-module",
            "conf": 0.95,
            "crit": 1,
            "desc": "Python unittest-style test module",
            "uses": [
              0,
              2
            ],
            "spans": [
              [
                3361,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/terminology::test-code-declaration-text",
            "conf": 0.8,
            "crit": 1,
            "desc": "Text reads as test-code declarations",
            "spans": [
              [
                159,
                0
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "id": 6,
        "sha": "a0fbb8c91246d378a197eb716b7caa98988b9eb3ac2732ee37ab78a39dd1053e",
        "path": "symfony-models-dev-v81.0.zip!!symfony-models-dev-a1c406e/composer.json",
        "risk": 1,
        "size": 302,
        "type": "composerjson",
        "depth": 1
      },
      {
        "id": 7,
        "sha": "313e6e17df97581f2a3de9220e0e14f7aa5f83c5976c080b38df1b453f044f79",
        "path": "symfony-models-dev-v81.0.zip!!symfony-models-dev-a1c406e/models-dev.json",
        "risk": 1,
        "size": 4255837,
        "type": "json",
        "depth": 1
      }
    ],
    "omitted_files": 2,
    "rev": "56752",
    "v": "8"
  }
}