{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "MINED124", "name": "[MINED124] requirements.txt: `pyyaml` has no version pin: Unpinned pip requirement means every fresh install may resolve", "shortDescription": {"text": "[MINED124] requirements.txt: `pyyaml` has no version pin: Unpinned pip requirement means every fresh install may resolve a different version. Newer releases can introduce malicious code (typosquats, account compromises). Reproducible instal"}, "fullDescription": {"text": "Replace `pyyaml` with `pyyaml==<version>` and manage upgrades through PRs / Dependabot."}, "properties": {"scanner": "repobility-supply-chain", "category": "dependency", "severity": "medium", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "MINED111", "name": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or ", "shortDescription": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "fullDescription": {"text": "Either narrow the exception type, log the exception with `logger.exception(...)`, or re-raise after handling."}, "properties": {"scanner": "repobility-ast-engine", "category": "quality", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC011", "name": "[SEC011] Unsafe PyTorch Model Loading: torch.load() uses pickle internally and can execute arbitrary code from untrusted", "shortDescription": {"text": "[SEC011] Unsafe PyTorch Model Loading: torch.load() uses pickle internally and can execute arbitrary code from untrusted model files."}, "fullDescription": {"text": "Use torch.load(..., weights_only=True) or use safetensors format."}, "properties": {"scanner": "repobility-threat-engine", "category": "deserialization", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "CORE_NO_CI", "name": "No CI/CD configuration found", "shortDescription": {"text": "No CI/CD configuration found"}, "fullDescription": {"text": "Add a CI/CD pipeline: create .github/workflows/ci.yml for GitHub Actions with steps to lint, test, and build on every push and pull request."}, "properties": {"scanner": "repobility-core", "category": "practices", "severity": "medium", "confidence": null, "cwe": "", "owasp": ""}}, {"id": "AIC003", "name": "Duplicated implementation block across source files", "shortDescription": {"text": "Duplicated implementation block across source files"}, "fullDescription": {"text": "Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "low", "confidence": 0.86, "cwe": "", "owasp": ""}}, {"id": "SEC132", "name": "[SEC132] String concat where the language has interpolation (AI style drift): String built by concatenation where the la", "shortDescription": {"text": "[SEC132] String concat where the language has interpolation (AI style drift): String built by concatenation where the language has cleaner interpolation (Python f-strings since 3.6, JS template literals since ES6). Not a vulnerability on it"}, "fullDescription": {"text": "Python: `f\"prefix {var} suffix\"`. JS/TS: `` `prefix ${var} suffix` ``. Add a lint rule (pyupgrade UP032, eslint prefer-template) so future PRs catch this automatically."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "low", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "COMP001", "name": "[COMP001] High cognitive complexity: Function `stage_h5` has cognitive complexity 8 (SonarSource scale). Cognitive compl", "shortDescription": {"text": "[COMP001] High cognitive complexity: Function `stage_h5` has cognitive complexity 8 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand \u2014 nested branches, boolean chains, and recursion all w"}, "fullDescription": {"text": "Extract nested branches into named helper functions; flatten early-return / guard clauses; replace long if/elif chains with dispatch dicts or polymorphism. SonarQube's threshold for 'should refactor' is 15 \u2014 yours is 8."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "low", "confidence": 0.95, "cwe": "", "owasp": ""}}, {"id": "CORE_NO_LICENSE", "name": "No LICENSE file", "shortDescription": {"text": "No LICENSE file"}, "fullDescription": {"text": "Add a LICENSE file to your repository. Use choosealicense.com to pick the right license (MIT for permissive, Apache 2.0 for patent protection, GPL for copyleft)."}, "properties": {"scanner": "repobility-core", "category": "documentation", "severity": "low", "confidence": null, "cwe": "", "owasp": ""}}, {"id": "MINED050", "name": "[MINED050] Stub Only Function (and 8 more): Same pattern found in 8 additional files. Review if needed.", "shortDescription": {"text": "[MINED050] Stub Only Function (and 8 more): Same pattern found in 8 additional files. Review if needed."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-1188 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "MINED001", "name": "[MINED001] Bare Except Pass (and 6 more): Same pattern found in 6 additional files. Review if needed.", "shortDescription": {"text": "[MINED001] Bare Except Pass (and 6 more): Same pattern found in 6 additional files. Review if needed."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-755 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "SEC045", "name": "[SEC045] eval()/exec() on stored or user-supplied data (and 5 more): Same pattern found in 5 additional files. Review if", "shortDescription": {"text": "[SEC045] eval()/exec() on stored or user-supplied data (and 5 more): Same pattern found in 5 additional files. Review if needed."}, "fullDescription": {"text": "For literal data structures: use ast.literal_eval(text) \u2014 only parses literals, raises on code.\nFor formula evaluation: use asteval or simpleeval (purpose-built sandboxes with allow-lists).\nFor Odoo: use odoo.tools.safe_eval(expr, locals_dict, mode='exec').\nIf you genuinely need to execute admin-stored code: require explicit super-admin permission AND log every execution with a stack trace."}, "properties": {"scanner": "repobility-threat-engine", "category": "injection", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "MINED064", "name": "[MINED064] Python Input Call: input() blocks for stdin. Inappropriate in services.", "shortDescription": {"text": "[MINED064] Python Input Call: input() blocks for stdin. Inappropriate in services."}, "fullDescription": {"text": "Review and fix per the pattern semantics."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED055", "name": "[MINED055] Npm Install No Lockfile: Production image runs npm install (resolves new versions on every build) instead of ", "shortDescription": {"text": "[MINED055] Npm Install No Lockfile: Production image runs npm install (resolves new versions on every build) instead of npm ci."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-1357 / A06:2021 for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED062", "name": "[MINED062] Python Dataclass No Fields: @dataclass over an empty class \u2014 unfinished model.", "shortDescription": {"text": "[MINED062] Python Dataclass No Fields: @dataclass over an empty class \u2014 unfinished model."}, "fullDescription": {"text": "Review and fix per the pattern semantics."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED108", "name": "[MINED108] `self.blend_min` used but never assigned in __init__: Method `forward` of class `TrainableWu2015` reads `self", "shortDescription": {"text": "[MINED108] `self.blend_min` used but never assigned in __init__: Method `forward` of class `TrainableWu2015` reads `self.blend_min`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the fi"}, "fullDescription": {"text": "Initialize `self.blend_min = <default>` in __init__, or add a class-level default."}, "properties": {"scanner": "repobility-ast-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC103", "name": "[SEC103] LDAP injection \u2014 non-constant search filter: User input concatenated into an LDAP search filter. Attackers inje", "shortDescription": {"text": "[SEC103] LDAP injection \u2014 non-constant search filter: User input concatenated into an LDAP search filter. Attackers inject `*)(uid=*` style payloads to bypass auth or enumerate accounts."}, "fullDescription": {"text": "Escape with javax.naming.ldap.Rdn.escapeValue or equivalent. For python-ldap, use ldap.filter.escape_filter_chars. Better: use parameterized search APIs (Spring LdapTemplate filter encoders)."}, "properties": {"scanner": "repobility-threat-engine", "category": "injection", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC128", "name": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns", "shortDescription": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work completes \u2014 DB writes lost, emails not sent, ra"}, "fullDescription": {"text": "Add `await` before each async call, or chain with `.then`. If you intentionally want fire-and-forget, prefix with `void` (TS) or assign to `_` (Python with `asyncio.create_task`) to make the intent explicit and survive lint."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC029", "name": "[SEC029] Server-Side Request Forgery (SSRF) \u2014 outbound HTTP from user input: Outbound HTTP request to a user-controlled ", "shortDescription": {"text": "[SEC029] Server-Side Request Forgery (SSRF) \u2014 outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.254.169.254 metadata, internal Kubernetes e"}, "fullDescription": {"text": "Validate the URL against an allowlist BEFORE fetching:\n  ALLOWED = {'images.example.com', 'cdn.example.com'}\n  host = urlparse(url).hostname\n  if host not in ALLOWED: abort(400)\nOr use a server-side proxy (Imgproxy / serve-files-only-from-S3) that isolates outbound network access from the request handler.\nBlock private CIDRs explicitly: 10/8, 172.16/12, 192.168/16, 169.254/16."}, "properties": {"scanner": "repobility-threat-engine", "category": "ssrf", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "CORE_NO_TESTS", "name": "No test files found", "shortDescription": {"text": "No test files found"}, "fullDescription": {"text": "Add a test directory (tests/ or __tests__/) with unit tests for core functionality. Use pytest (Python), Jest (JS/TS), or go test (Go). Start with tests for critical business logic and security-sensitive functions."}, "properties": {"scanner": "repobility-core", "category": "testing", "severity": "high", "confidence": null, "cwe": "", "owasp": ""}}, {"id": "MINED107", "name": "[MINED107] Missing import: `stat` used but not imported: The file uses `stat.something(...)` but never imports `stat`. T", "shortDescription": {"text": "[MINED107] Missing import: `stat` used but not imported: The file uses `stat.something(...)` but never imports `stat`. This raises NameError at runtime the first time the line executes."}, "fullDescription": {"text": "Add `import stat` at the top of the file."}, "properties": {"scanner": "repobility-ast-engine", "category": "quality", "severity": "critical", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "scanner-506be2b95088f5d3", "name": "git log failed \u2014 history analysis incomplete", "shortDescription": {"text": "git log failed \u2014 history analysis incomplete"}, "fullDescription": {"text": "fatal: not a git repository (or any parent up to mount point /data)\nStopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, ci. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/2471"}, "properties": {"repository": "akmaier/Agent4CT", "repoUrl": "https://github.com/akmaier/Agent4CT", "branch": "main"}, "results": [{"ruleId": "MINED124", "level": "warning", "message": {"text": "[MINED124] requirements.txt: `pyyaml` has no version pin: Unpinned pip requirement means every fresh install may resolve a different version. Newer releases can introduce malicious code (typosquats, account compromises). Reproducible installs need exact pins."}, "properties": {"repobilityId": 209388, "scanner": "repobility-supply-chain", "fingerprint": "21d998f74bd2a3474163ea83e3bc927248debe8853166dac5feec2b2efe098bf", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|21d998f74bd2a3474163ea83e3bc927248debe8853166dac5feec2b2efe098bf"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "requirements.txt"}, "region": {"startLine": 7}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "[MINED124] requirements.txt: `matplotlib` has no version pin: Unpinned pip requirement means every fresh install may resolve a different version. Newer releases can introduce malicious code (typosquats, account compromises). Reproducible installs need exact pins."}, "properties": {"repobilityId": 209387, "scanner": "repobility-supply-chain", "fingerprint": "ec2cce42824d8930788dec845989f02b51fe57a8b450c43e1cd8ccbaf5e87191", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|ec2cce42824d8930788dec845989f02b51fe57a8b450c43e1cd8ccbaf5e87191"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "requirements.txt"}, "region": {"startLine": 6}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "[MINED124] requirements.txt: `tqdm` has no version pin: Unpinned pip requirement means every fresh install may resolve a different version. Newer releases can introduce malicious code (typosquats, account compromises). Reproducible installs need exact pins."}, "properties": {"repobilityId": 209386, "scanner": "repobility-supply-chain", "fingerprint": "ab5a0732d5e52200df5633517d4d338af3a409e1cf0f3a48e104170afe26f10a", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|ab5a0732d5e52200df5633517d4d338af3a409e1cf0f3a48e104170afe26f10a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "requirements.txt"}, "region": {"startLine": 5}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "[MINED124] requirements.txt: `scikit-image` has no version pin: Unpinned pip requirement means every fresh install may resolve a different version. Newer releases can introduce malicious code (typosquats, account compromises). Reproducible installs need exact pins."}, "properties": {"repobilityId": 209385, "scanner": "repobility-supply-chain", "fingerprint": "9af26ced7190bb0b5fe44c2f0c2904e68a82f323aaa26c11b7ee44bb2bd90193", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|9af26ced7190bb0b5fe44c2f0c2904e68a82f323aaa26c11b7ee44bb2bd90193"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "requirements.txt"}, "region": {"startLine": 4}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "[MINED124] requirements.txt: `scipy` has no version pin: Unpinned pip requirement means every fresh install may resolve a different version. Newer releases can introduce malicious code (typosquats, account compromises). Reproducible installs need exact pins."}, "properties": {"repobilityId": 209384, "scanner": "repobility-supply-chain", "fingerprint": "f6aa422f7f618000b7d88b1394ae45afc6bbf669af862158d1d3ecfcae8cc885", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|f6aa422f7f618000b7d88b1394ae45afc6bbf669af862158d1d3ecfcae8cc885"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "requirements.txt"}, "region": {"startLine": 3}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "[MINED124] requirements.txt: `numpy<3` has no version pin: Unpinned pip requirement means every fresh install may resolve a different version. Newer releases can introduce malicious code (typosquats, account compromises). Reproducible installs need exact pins."}, "properties": {"repobilityId": 209383, "scanner": "repobility-supply-chain", "fingerprint": "6f8c60206592b0dd25b9df978fe0c7c8d8610234f2e2c7c07ea5a980bc65e63c", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|6f8c60206592b0dd25b9df978fe0c7c8d8610234f2e2c7c07ea5a980bc65e63c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "requirements.txt"}, "region": {"startLine": 2}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209365, "scanner": "repobility-ast-engine", "fingerprint": "d13d66131190742d6648c02111e78a243c1d88a5c98f6f4213bfefedc36e48c5", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|d13d66131190742d6648c02111e78a243c1d88a5c98f6f4213bfefedc36e48c5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sanity_pyronn.py"}, "region": {"startLine": 102}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209364, "scanner": "repobility-ast-engine", "fingerprint": "4125bcaa27648cf72b0bc70dbb33517bb59504f319e2d83702bc181c3428833b", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|4125bcaa27648cf72b0bc70dbb33517bb59504f319e2d83702bc181c3428833b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/det_spacing_ablation_L014.py"}, "region": {"startLine": 68}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209363, "scanner": "repobility-ast-engine", "fingerprint": "67c68ab12c5eba8350e94b56d33c4f46a60814fdefed16821a8a53060a68ccec", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|67c68ab12c5eba8350e94b56d33c4f46a60814fdefed16821a8a53060a68ccec"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/det_spacing_ablation_L014.py"}, "region": {"startLine": 196}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209362, "scanner": "repobility-ast-engine", "fingerprint": "c20f0a1c2e579dee7476251b62d4517882d7cb6e21a1b590fc040de310aea5fc", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|c20f0a1c2e579dee7476251b62d4517882d7cb6e21a1b590fc040de310aea5fc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/det_spacing_ablation_L014.py"}, "region": {"startLine": 59}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209361, "scanner": "repobility-ast-engine", "fingerprint": "c2458b982e05a18c72efb03bc0a2f8826a9c9790c6ad3601fea86cde2a2b4821", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|c2458b982e05a18c72efb03bc0a2f8826a9c9790c6ad3601fea86cde2a2b4821"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/pixel_spacing_ablation_L014.py"}, "region": {"startLine": 67}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209360, "scanner": "repobility-ast-engine", "fingerprint": "e72684a847c1689b0d22e24b5550bd9bd9e6c7d917382cdf83b8a2f750225c9a", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|e72684a847c1689b0d22e24b5550bd9bd9e6c7d917382cdf83b8a2f750225c9a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/pixel_spacing_ablation_L014.py"}, "region": {"startLine": 198}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209359, "scanner": "repobility-ast-engine", "fingerprint": "f54fc3ee4b53199316c744d7e8e019c504d455c8158dfa5566e1e45b6feb05dc", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|f54fc3ee4b53199316c744d7e8e019c504d455c8158dfa5566e1e45b6feb05dc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/pixel_spacing_ablation_L014.py"}, "region": {"startLine": 58}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209358, "scanner": "repobility-ast-engine", "fingerprint": "cf846c4b257ea75516800f50cabfdb2c9cc241aef5cebef34436a95d4c22a661", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|cf846c4b257ea75516800f50cabfdb2c9cc241aef5cebef34436a95d4c22a661"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/ffs_sign_ablation_L014.py"}, "region": {"startLine": 71}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209357, "scanner": "repobility-ast-engine", "fingerprint": "863f5c2173594532cde067d9f7f2be35c0385d9f170805ff0e7c67f490e9f96f", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|863f5c2173594532cde067d9f7f2be35c0385d9f170805ff0e7c67f490e9f96f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/ffs_sign_ablation_L014.py"}, "region": {"startLine": 240}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209356, "scanner": "repobility-ast-engine", "fingerprint": "9e66d5562aed2f02b365a84c0fe0e1b78a6d2ac03f6e7fe7454907babbc0c66c", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|9e66d5562aed2f02b365a84c0fe0e1b78a6d2ac03f6e7fe7454907babbc0c66c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/ffs_sign_ablation_L014.py"}, "region": {"startLine": 62}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209355, "scanner": "repobility-ast-engine", "fingerprint": "cbfb5e507933765e9e7da210540d56178589b7c1f3af88e3ff3a2ddb61b1d44d", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|cbfb5e507933765e9e7da210540d56178589b7c1f3af88e3ff3a2ddb61b1d44d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/z_aligned_validation.py"}, "region": {"startLine": 63}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209354, "scanner": "repobility-ast-engine", "fingerprint": "3fd457b7e1eb83ed555b9e4a2504916612be2efdc449f5d5d7c6e718d0e1a796", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|3fd457b7e1eb83ed555b9e4a2504916612be2efdc449f5d5d7c6e718d0e1a796"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/z_aligned_validation.py"}, "region": {"startLine": 54}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209353, "scanner": "repobility-ast-engine", "fingerprint": "857fbdf84a2b38851ea26a18a5ec9ba6c421f2e9166a50fac920fd2e7e3e81eb", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|857fbdf84a2b38851ea26a18a5ec9ba6c421f2e9166a50fac920fd2e7e3e81eb"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fit_fbp_geometry_L014.py"}, "region": {"startLine": 71}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209352, "scanner": "repobility-ast-engine", "fingerprint": "cc7ea64bfefe19251183223678cb6bf10bea9501e5ab603397e6d56442c8ce51", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|cc7ea64bfefe19251183223678cb6bf10bea9501e5ab603397e6d56442c8ce51"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fit_fbp_geometry_L014.py"}, "region": {"startLine": 62}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209351, "scanner": "repobility-ast-engine", "fingerprint": "6fb4c2957c061cf497c393ed8934469edc0a7dfe66df10067d912df551eb9b50", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|6fb4c2957c061cf497c393ed8934469edc0a7dfe66df10067d912df551eb9b50"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "data/fetch_mayo_ldct.py"}, "region": {"startLine": 194}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209350, "scanner": "repobility-ast-engine", "fingerprint": "cdce93084e745d4995565271266b9a51f6ed7c78763e0c255e2d17a64a1e77f2", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|cdce93084e745d4995565271266b9a51f6ed7c78763e0c255e2d17a64a1e77f2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "data/fetch_mayo_ldct.py"}, "region": {"startLine": 355}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209349, "scanner": "repobility-ast-engine", "fingerprint": "649079c94ba05ab778d2d1010868fd1394f4a416e5ddb62d96819bb5aa149195", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|649079c94ba05ab778d2d1010868fd1394f4a416e5ddb62d96819bb5aa149195"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "data/fetch_mayo_ldct.py"}, "region": {"startLine": 329}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209348, "scanner": "repobility-ast-engine", "fingerprint": "37a19a6feeb59787c42dfbe2517051e5dee7645d0070f7583dc96996b2887a8d", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|37a19a6feeb59787c42dfbe2517051e5dee7645d0070f7583dc96996b2887a8d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "data/fetch_mayo_ldct.py"}, "region": {"startLine": 299}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209347, "scanner": "repobility-ast-engine", "fingerprint": "2ad61347b046524441b29fbd5c42666a9e45104118307249dd958cf84037ffec", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|2ad61347b046524441b29fbd5c42666a9e45104118307249dd958cf84037ffec"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "data/fetch_mayo_ldct.py"}, "region": {"startLine": 181}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209345, "scanner": "repobility-ast-engine", "fingerprint": "6cd5ca877a498f0c0e53e02e3cfd2fd1c596d8e91e68964730446805e1b7d1f2", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|6cd5ca877a498f0c0e53e02e3cfd2fd1c596d8e91e68964730446805e1b7d1f2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cluster/rrze_agent.py"}, "region": {"startLine": 727}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209344, "scanner": "repobility-ast-engine", "fingerprint": "db635f23061451428662a2c2ab25e40f929bfe87e42698b0748810ba578475c7", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|db635f23061451428662a2c2ab25e40f929bfe87e42698b0748810ba578475c7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cluster/rrze_agent.py"}, "region": {"startLine": 672}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209342, "scanner": "repobility-ast-engine", "fingerprint": "ad218ff5a40cad50de607d683fe0dc67e76990634a095bda41bd79da2d7f4c64", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|ad218ff5a40cad50de607d683fe0dc67e76990634a095bda41bd79da2d7f4c64"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ddssl_ldct/harness.py"}, "region": {"startLine": 472}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209341, "scanner": "repobility-ast-engine", "fingerprint": "5292762d1f82f23cbb3d4630dbb905a06def5b23e543bac4725cf606b3aeb82a", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|5292762d1f82f23cbb3d4630dbb905a06def5b23e543bac4725cf606b3aeb82a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ddssl_ldct/harness.py"}, "region": {"startLine": 323}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209332, "scanner": "repobility-ast-engine", "fingerprint": "b40e01bfb316762010e16644a9b2fdd3f126fc46669070f4f774723f3dba9d7d", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|b40e01bfb316762010e16644a9b2fdd3f126fc46669070f4f774723f3dba9d7d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ddssl_ldct/metrics.py"}, "region": {"startLine": 325}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 209331, "scanner": "repobility-ast-engine", "fingerprint": "9146a0d65c5f04b3d4b56255e5d1d771f276c671ec68dca580f91c552eb5cbf9", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|9146a0d65c5f04b3d4b56255e5d1d771f276c671ec68dca580f91c552eb5cbf9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ddssl_ldct/metrics.py"}, "region": {"startLine": 321}}}]}, {"ruleId": "SEC011", "level": "warning", "message": {"text": "[SEC011] Unsafe PyTorch Model Loading: torch.load() uses pickle internally and can execute arbitrary code from untrusted model files."}, "properties": {"repobilityId": 209298, "scanner": "repobility-threat-engine", "fingerprint": "06ab39e3c37600939121f1fe591c5cbca513e7d2d2b85cc6e0b4024dc34b8576", "category": "deserialization", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "torch.load(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC011", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|deserialization|token|39|sec011"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/ddpm_sanity_sample.py"}, "region": {"startLine": 39}}}]}, {"ruleId": "CORE_NO_CI", "level": "warning", "message": {"text": "No CI/CD configuration found"}, "properties": {"repobilityId": 209272, "scanner": "repobility-core", "fingerprint": "ca5da3551af97272c4f099fc472740148135a15816b81b90bd862e8f91ec66ce", "category": "practices", "severity": "medium", "confidence": null, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"rule_id": "CORE_NO_CI", "scanner": "repobility-core", "correlation_key": "repo|practices|core_no_ci"}}}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209330, "scanner": "repobility-ai-code-hygiene", "fingerprint": "d44cd9c6b847e8a08b78e800e6b13621c5d76e843bf42fd0faace485307d797c", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_wu_2015.py", "duplicate_line": 187, "correlation_key": "fp|d44cd9c6b847e8a08b78e800e6b13621c5d76e843bf42fd0faace485307d797c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_wu_2015_trainable.py"}, "region": {"startLine": 185}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209329, "scanner": "repobility-ai-code-hygiene", "fingerprint": "fb2dafa7cb667ec0e33f0f2a26e31cc232fef1ced2f297b18eb7dcc44877f022", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_fbp_baseline.py", "duplicate_line": 66, "correlation_key": "fp|fb2dafa7cb667ec0e33f0f2a26e31cc232fef1ced2f297b18eb7dcc44877f022"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_wu_2015.py"}, "region": {"startLine": 236}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209328, "scanner": "repobility-ai-code-hygiene", "fingerprint": "dd2ed7f4db2ef9978311d875397b69829add0f865211d32b6a0bbd19717c3992", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_dual_ddomain_bilateral_n2i.py", "duplicate_line": 173, "correlation_key": "fp|dd2ed7f4db2ef9978311d875397b69829add0f865211d32b6a0bbd19717c3992"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_wu_2015.py"}, "region": {"startLine": 233}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209327, "scanner": "repobility-ai-code-hygiene", "fingerprint": "1174337d9ee80daec714e78accf910463cd0d97c7a46b856200a9bd4a1372ee6", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_tv_iterative.py", "duplicate_line": 98, "correlation_key": "fp|1174337d9ee80daec714e78accf910463cd0d97c7a46b856200a9bd4a1372ee6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_wu_2015.py"}, "region": {"startLine": 227}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209326, "scanner": "repobility-ai-code-hygiene", "fingerprint": "efba9a827605293bea46c344b9dea5554420d0b79353039e541e779ad7ac9584", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_tv_iterative.py", "duplicate_line": 125, "correlation_key": "fp|efba9a827605293bea46c344b9dea5554420d0b79353039e541e779ad7ac9584"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_tv_search.py"}, "region": {"startLine": 180}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209325, "scanner": "repobility-ai-code-hygiene", "fingerprint": "258c99eca91dc2cf14deea1ae6da7d3cd88e6020771fe127e29378cfae94341f", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_dual_ddomain_bilateral_n2i.py", "duplicate_line": 93, "correlation_key": "fp|258c99eca91dc2cf14deea1ae6da7d3cd88e6020771fe127e29378cfae94341f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_tv_iterative_supervised.py"}, "region": {"startLine": 108}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209324, "scanner": "repobility-ai-code-hygiene", "fingerprint": "9cb3cbd7eace11b963c51ef3e184e8cb348429c41ce27edccdc6ec9dcf24a61b", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_dual_ddomain_bilateral_n2i.py", "duplicate_line": 102, "correlation_key": "fp|9cb3cbd7eace11b963c51ef3e184e8cb348429c41ce27edccdc6ec9dcf24a61b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_tv_iterative.py"}, "region": {"startLine": 70}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209323, "scanner": "repobility-ai-code-hygiene", "fingerprint": "265704794b7dc3f89e0be7b016f0bb1459216af9652e64d3f06c0e9473a062e0", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_fbp_baseline.py", "duplicate_line": 36, "correlation_key": "fp|265704794b7dc3f89e0be7b016f0bb1459216af9652e64d3f06c0e9473a062e0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_tv_iterative.py"}, "region": {"startLine": 68}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209322, "scanner": "repobility-ai-code-hygiene", "fingerprint": "981906168640a8bbc6ed7bd8a60d85ecb4752e375c241b72ea1cf5dd242bb8fd", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_naf.py", "duplicate_line": 162, "correlation_key": "fp|981906168640a8bbc6ed7bd8a60d85ecb4752e375c241b72ea1cf5dd242bb8fd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_r2gaussian.py"}, "region": {"startLine": 187}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209321, "scanner": "repobility-ai-code-hygiene", "fingerprint": "1af208c7a41b72925692be4b2b1feeb0bd7098188dfb8066273ff28177e3abea", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_dual_ddomain_supervised.py", "duplicate_line": 173, "correlation_key": "fp|1af208c7a41b72925692be4b2b1feeb0bd7098188dfb8066273ff28177e3abea"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_learned_primal_dual.py"}, "region": {"startLine": 242}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209320, "scanner": "repobility-ai-code-hygiene", "fingerprint": "5b343b0637a699aff76fad728e944fc76e1466fe63c49e7eca3656dcbcbb21b7", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_dual_ddomain_n2i.py", "duplicate_line": 121, "correlation_key": "fp|5b343b0637a699aff76fad728e944fc76e1466fe63c49e7eca3656dcbcbb21b7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_learned_primal_dual.py"}, "region": {"startLine": 241}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209319, "scanner": "repobility-ai-code-hygiene", "fingerprint": "6bb4d08d259fa1341a48834d412f0ca280460581fa0ad019e8555b994ace9c31", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_dual_ddomain_bilateral_supervised.py", "duplicate_line": 131, "correlation_key": "fp|6bb4d08d259fa1341a48834d412f0ca280460581fa0ad019e8555b994ace9c31"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_learned_primal_dual.py"}, "region": {"startLine": 158}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209318, "scanner": "repobility-ai-code-hygiene", "fingerprint": "a08966d2c3d2a5c5eceb76197c3afc35dce7cd56edb27d3d2268537acab2ad6c", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_dual_ddomain_bilateral_n2i.py", "duplicate_line": 93, "correlation_key": "fp|a08966d2c3d2a5c5eceb76197c3afc35dce7cd56edb27d3d2268537acab2ad6c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_learned_primal_dual.py"}, "region": {"startLine": 146}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209317, "scanner": "repobility-ai-code-hygiene", "fingerprint": "dd822f7189f6b1e0cfd53121d75099fe1720e56677699d9ae245feafcdb6749e", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_itnet_v2.py", "duplicate_line": 170, "correlation_key": "fp|dd822f7189f6b1e0cfd53121d75099fe1720e56677699d9ae245feafcdb6749e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_itnet_v3.py"}, "region": {"startLine": 211}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209316, "scanner": "repobility-ai-code-hygiene", "fingerprint": "f778a8cf34cbe8722caf4253f1000f30c90fa360452f61c07847d125594e4c56", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_hammernik_2017.py", "duplicate_line": 220, "correlation_key": "fp|f778a8cf34cbe8722caf4253f1000f30c90fa360452f61c07847d125594e4c56"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_itnet_v3.py"}, "region": {"startLine": 210}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209315, "scanner": "repobility-ai-code-hygiene", "fingerprint": "71a4a0a903c3da954cd21bb24eb614fe3d8ca58ae42e44fe9d2a2398a8aa66df", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_dual_ddomain_bilateral_supervised.py", "duplicate_line": 136, "correlation_key": "fp|71a4a0a903c3da954cd21bb24eb614fe3d8ca58ae42e44fe9d2a2398a8aa66df"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_itnet_v3.py"}, "region": {"startLine": 146}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209314, "scanner": "repobility-ai-code-hygiene", "fingerprint": "b2250e7f0e62a5a7b2e8b77220ad32fee45deefc9d65137e548339a6daf9821d", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "ddssl_ldct/models.py", "duplicate_line": 14, "correlation_key": "fp|b2250e7f0e62a5a7b2e8b77220ad32fee45deefc9d65137e548339a6daf9821d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_itnet_v3.py"}, "region": {"startLine": 28}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209313, "scanner": "repobility-ai-code-hygiene", "fingerprint": "b955028a04824d8310a5623f16ad63697d8047ca03c4990b8da61affda9d282b", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_dual_ddomain_bilateral_n2i.py", "duplicate_line": 93, "correlation_key": "fp|b955028a04824d8310a5623f16ad63697d8047ca03c4990b8da61affda9d282b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_itnet_v2.py"}, "region": {"startLine": 109}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209312, "scanner": "repobility-ai-code-hygiene", "fingerprint": "5c1452d151fef1a94b2c84285f4854420a1deba52ed32cff78c835c9eeffac86", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_itnet.py", "duplicate_line": 74, "correlation_key": "fp|5c1452d151fef1a94b2c84285f4854420a1deba52ed32cff78c835c9eeffac86"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_itnet_v2.py"}, "region": {"startLine": 84}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209311, "scanner": "repobility-ai-code-hygiene", "fingerprint": "76fc966b3ba612a74913f29f1726ac42be8de0d0ccc641c7d61e980168724a28", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_dual_ddomain_n2i.py", "duplicate_line": 121, "correlation_key": "fp|76fc966b3ba612a74913f29f1726ac42be8de0d0ccc641c7d61e980168724a28"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_itnet.py"}, "region": {"startLine": 168}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209310, "scanner": "repobility-ai-code-hygiene", "fingerprint": "68c955319b85f23f7fb018b0d8cb0570fa7ed722e291fcbcda6b3e58ff0f5dad", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_dual_ddomain_bilateral_n2i.py", "duplicate_line": 93, "correlation_key": "fp|68c955319b85f23f7fb018b0d8cb0570fa7ed722e291fcbcda6b3e58ff0f5dad"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_itnet.py"}, "region": {"startLine": 110}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209309, "scanner": "repobility-ai-code-hygiene", "fingerprint": "e332a6a0129c210cd830790a8c2beb1edfca340b32d71d993428ba480c6b19ae", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_hammernik_2017.py", "duplicate_line": 74, "correlation_key": "fp|e332a6a0129c210cd830790a8c2beb1edfca340b32d71d993428ba480c6b19ae"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_hammernik_vn.py"}, "region": {"startLine": 75}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209308, "scanner": "repobility-ai-code-hygiene", "fingerprint": "a81b9dccf598325e84ba4af6b2eab49a35d98a70dd976ba992eba5b2d718b147", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_dual_ddomain_bilateral_n2i.py", "duplicate_line": 102, "correlation_key": "fp|a81b9dccf598325e84ba4af6b2eab49a35d98a70dd976ba992eba5b2d718b147"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_fbp_baseline.py"}, "region": {"startLine": 38}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209307, "scanner": "repobility-ai-code-hygiene", "fingerprint": "0e46a11bb1934abb64d5f6cf7f852dc58a0d8edf159e15483c60313ab726cba2", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_dual_ddomain_n2i.py", "duplicate_line": 121, "correlation_key": "fp|0e46a11bb1934abb64d5f6cf7f852dc58a0d8edf159e15483c60313ab726cba2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_dual_ddomain_supervised.py"}, "region": {"startLine": 172}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209306, "scanner": "repobility-ai-code-hygiene", "fingerprint": "23ee7fe517819479175f55b36d70b57ccb86ac53033a2d713dbbfeab9f2857f4", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_dual_ddomain_bilateral_n2i.py", "duplicate_line": 90, "correlation_key": "fp|23ee7fe517819479175f55b36d70b57ccb86ac53033a2d713dbbfeab9f2857f4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_dual_ddomain_supervised.py"}, "region": {"startLine": 65}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209305, "scanner": "repobility-ai-code-hygiene", "fingerprint": "ffb6e57948e7b0a451ca670456b112a045237e4b15bc9b46e3e783fadb2b1198", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_dual_ddomain_bilateral_supervised.py", "duplicate_line": 105, "correlation_key": "fp|ffb6e57948e7b0a451ca670456b112a045237e4b15bc9b46e3e783fadb2b1198"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_dual_ddomain_supervised.py"}, "region": {"startLine": 54}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209304, "scanner": "repobility-ai-code-hygiene", "fingerprint": "8acdbd60a043cdefe9d2b9083cd772e9b0d375f7456cad325ca0093f257ab250", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_dual_ddomain_bilateral_n2i.py", "duplicate_line": 82, "correlation_key": "fp|8acdbd60a043cdefe9d2b9083cd772e9b0d375f7456cad325ca0093f257ab250"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_dual_ddomain_n2i.py"}, "region": {"startLine": 42}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209303, "scanner": "repobility-ai-code-hygiene", "fingerprint": "65d04b74f8afd59edc374690ebf7bbcfca63ee115e7f6938aaac4e3b2787c5dc", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_dual_ddomain_bilateral_n2i.py", "duplicate_line": 59, "correlation_key": "fp|65d04b74f8afd59edc374690ebf7bbcfca63ee115e7f6938aaac4e3b2787c5dc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_dual_ddomain_bilateral_supervised.py"}, "region": {"startLine": 69}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209302, "scanner": "repobility-ai-code-hygiene", "fingerprint": "c073c910b0bbecff5364ff5fafad24c025d76db32498f37e6aa621e0cffe16ed", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_diffusion.py", "duplicate_line": 14, "correlation_key": "fp|c073c910b0bbecff5364ff5fafad24c025d76db32498f37e6aa621e0cffe16ed"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_diffusion_recon.py"}, "region": {"startLine": 15}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 209301, "scanner": "repobility-ai-code-hygiene", "fingerprint": "3b83cf02620a0c217e7730b3cb6416af25d0b0dd93e89b4047b6a8b42802e611", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "pentathlon/demo_dl_reference/solver_ddpm.py", "duplicate_line": 51, "correlation_key": "fp|3b83cf02620a0c217e7730b3cb6416af25d0b0dd93e89b4047b6a8b42802e611"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_diffusion.py"}, "region": {"startLine": 50}}}]}, {"ruleId": "SEC132", "level": "note", "message": {"text": "[SEC132] String concat where the language has interpolation (AI style drift): String built by concatenation where the language has cleaner interpolation (Python f-strings since 3.6, JS template literals since ES6). Not a vulnerability on its own, but a style signature of cross-language AI rewrites \u2014 the model wrote idiomatic Java/C# and then translated mechanically. When this style appears in only *some* files of a repo, it's a strong indicator of an AI-driven rewrite that needs a human review p"}, "properties": {"repobilityId": 209299, "scanner": "repobility-threat-engine", "fingerprint": "b6f89de5894be796a4aa37a91c60f2314040d0f583ae4292a77654614397713a", "category": "quality", "severity": "low", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "\"<!-- AGENTIC_TABLE_START -->\\n\" + table + \"\\n<!-- AGENTIC_TABLE_END -->\"", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC132", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|b6f89de5894be796a4aa37a91c60f2314040d0f583ae4292a77654614397713a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/gen_mayo_leaderboard.py"}, "region": {"startLine": 114}}}]}, {"ruleId": "COMP001", "level": "note", "message": {"text": "[COMP001] High cognitive complexity: Function `stage_h5` has cognitive complexity 8 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand \u2014 nested branches, boolean chains, and recursion all weigh in. Breakdown: for=2, if=3, nested_bonus=1, or=1, ternary=1."}, "properties": {"repobilityId": 209283, "scanner": "repobility-threat-engine", "fingerprint": "2250d59823c18dc4802b982b90aafbc1f06e16935e9cfad1ef2dcba4772cec15", "category": "quality", "severity": "low", "confidence": 0.95, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "AST-derived cognitive complexity score = 8 (severity threshold for low: 8+).", "evidence": {"scanner": "repobility-threat-engine", "function": "stage_h5", "breakdown": {"if": 3, "or": 1, "for": 2, "ternary": 1, "nested_bonus": 1}, "complexity": 8, "correlation_key": "fp|2250d59823c18dc4802b982b90aafbc1f06e16935e9cfad1ef2dcba4772cec15"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "data/fetch_dl_spectral.py"}, "region": {"startLine": 81}}}]}, {"ruleId": "COMP001", "level": "note", "message": {"text": "[COMP001] High cognitive complexity: Function `main` has cognitive complexity 9 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand \u2014 nested branches, boolean chains, and recursion all weigh in. Breakdown: else=2, if=4, nested_bonus=2, ternary=1."}, "properties": {"repobilityId": 209282, "scanner": "repobility-threat-engine", "fingerprint": "b3abb81f2d5d24ab8c8244297f7d6e0dc5e08b5a21eba7de71dc512d3951216f", "category": "quality", "severity": "low", "confidence": 0.95, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "AST-derived cognitive complexity score = 9 (severity threshold for low: 8+).", "evidence": {"scanner": "repobility-threat-engine", "function": "main", "breakdown": {"if": 4, "else": 2, "ternary": 1, "nested_bonus": 2}, "complexity": 9, "correlation_key": "fp|b3abb81f2d5d24ab8c8244297f7d6e0dc5e08b5a21eba7de71dc512d3951216f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "data/fetch_dl_spectral.py"}, "region": {"startLine": 150}}}]}, {"ruleId": "COMP001", "level": "note", "message": {"text": "[COMP001] High cognitive complexity: Function `download` has cognitive complexity 14 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand \u2014 nested branches, boolean chains, and recursion all weigh in. Breakdown: and=1, break=1, if=6, nested_bonus=3, ternary=2, while=1."}, "properties": {"repobilityId": 209281, "scanner": "repobility-threat-engine", "fingerprint": "1ca2fb5114ed6754086d052d55b3057fd0f6c65247709835a7237f89a8b926b7", "category": "quality", "severity": "low", "confidence": 0.95, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "AST-derived cognitive complexity score = 14 (severity threshold for low: 8+).", "evidence": {"scanner": "repobility-threat-engine", "function": "download", "breakdown": {"if": 6, "and": 1, "break": 1, "while": 1, "ternary": 2, "nested_bonus": 3}, "complexity": 14, "correlation_key": "fp|1ca2fb5114ed6754086d052d55b3057fd0f6c65247709835a7237f89a8b926b7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "data/_common.py"}, "region": {"startLine": 42}}}]}, {"ruleId": "CORE_NO_LICENSE", "level": "note", "message": {"text": "No LICENSE file"}, "properties": {"repobilityId": 209271, "scanner": "repobility-core", "fingerprint": "9314e9238cd99885865b92490d1aaa96ca62b1390c9377878d5f3d99227e1c3c", "category": "documentation", "severity": "low", "confidence": null, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"rule_id": "CORE_NO_LICENSE", "scanner": "repobility-core", "correlation_key": "repo|documentation|core_no_license"}}}, {"ruleId": "MINED050", "level": "none", "message": {"text": "[MINED050] Stub Only Function (and 8 more): Same pattern found in 8 additional files. Review if needed."}, "properties": {"repobilityId": 209297, "scanner": "repobility-threat-engine", "fingerprint": "26a20ec3af6c1bf844f4aaed7ed4016813a12e74cf2ca0c954b4690d78374bea", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 8 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "stub-only-function", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348017+00:00", "triaged_in_corpus": 12, "observations_count": 633513, "ai_coder_pattern_id": 2}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|26a20ec3af6c1bf844f4aaed7ed4016813a12e74cf2ca0c954b4690d78374bea", "aggregated_count": 8}}}, {"ruleId": "MINED050", "level": "none", "message": {"text": "[MINED050] Stub Only Function: Function declared but body is just pass, return None, raise NotImplementedError, or TODO comment."}, "properties": {"repobilityId": 209296, "scanner": "repobility-threat-engine", "fingerprint": "3e8050531b848ab6711204c5e0db884143c19d8ba5a6be3c8f21c6cc41a0497f", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "stub-only-function", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348017+00:00", "triaged_in_corpus": 12, "observations_count": 633513, "ai_coder_pattern_id": 2}, "scanner": "repobility-threat-engine", "correlation_key": "fp|3e8050531b848ab6711204c5e0db884143c19d8ba5a6be3c8f21c6cc41a0497f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dd_and_itnet_search.py"}, "region": {"startLine": 39}}}]}, {"ruleId": "MINED050", "level": "none", "message": {"text": "[MINED050] Stub Only Function: Function declared but body is just pass, return None, raise NotImplementedError, or TODO comment."}, "properties": {"repobilityId": 209295, "scanner": "repobility-threat-engine", "fingerprint": "1bebb817dfb38a183eb7049827c56dbe669a6e0fe816125cd0dc8d4d54d5cc5e", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "stub-only-function", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348017+00:00", "triaged_in_corpus": 12, "observations_count": 633513, "ai_coder_pattern_id": 2}, "scanner": "repobility-threat-engine", "correlation_key": "fp|1bebb817dfb38a183eb7049827c56dbe669a6e0fe816125cd0dc8d4d54d5cc5e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/bf_search_agent.py"}, "region": {"startLine": 36}}}]}, {"ruleId": "MINED050", "level": "none", "message": {"text": "[MINED050] Stub Only Function: Function declared but body is just pass, return None, raise NotImplementedError, or TODO comment."}, "properties": {"repobilityId": 209294, "scanner": "repobility-threat-engine", "fingerprint": "4ab27cbbb91076f7183a3abf80b4487088d3ea56161bb2bc178435fa52f01d6b", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "stub-only-function", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348017+00:00", "triaged_in_corpus": 12, "observations_count": 633513, "ai_coder_pattern_id": 2}, "scanner": "repobility-threat-engine", "correlation_key": "fp|4ab27cbbb91076f7183a3abf80b4487088d3ea56161bb2bc178435fa52f01d6b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/agent4ct_record.py"}, "region": {"startLine": 143}}}]}, {"ruleId": "MINED001", "level": "none", "message": {"text": "[MINED001] Bare Except Pass (and 6 more): Same pattern found in 6 additional files. Review if needed."}, "properties": {"repobilityId": 209293, "scanner": "repobility-threat-engine", "fingerprint": "bb423e21d8bdc29e6dfc844c3717d0dc4cb6b828860c7155ecb21a5fcf036249", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 6 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "bare-except-pass", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347744+00:00", "triaged_in_corpus": 15, "observations_count": 1550824, "ai_coder_pattern_id": 6}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|bb423e21d8bdc29e6dfc844c3717d0dc4cb6b828860c7155ecb21a5fcf036249", "aggregated_count": 6}}}, {"ruleId": "SEC045", "level": "none", "message": {"text": "[SEC045] eval()/exec() on stored or user-supplied data (and 5 more): Same pattern found in 5 additional files. Review if needed."}, "properties": {"repobilityId": 209289, "scanner": "repobility-threat-engine", "fingerprint": "7ad821c68fd7d69c56ceaf843dc975879999279796dea3d5e69af832688addea", "category": "injection", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 5 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"reason": "Deduplicated summary only: 5 additional occurrences found. The top occurrences remain visible as actionable findings.", "rule_id": "SEC045", "scanner": "repobility-threat-engine", "confidence": 0.2, "correlation_key": "fp|7ad821c68fd7d69c56ceaf843dc975879999279796dea3d5e69af832688addea"}}}, {"ruleId": "SEC045", "level": "none", "message": {"text": "[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data \u2014 even admin-stored data \u2014 is a lateral-movement vector after any one credential compromise. Sandboxes (__builtins__ cleared) are escapable: attackers use object introspection (().__class__.__mro__[-1].__subclasses__()) to reach os.system. CWE-95 (eval injection)."}, "properties": {"repobilityId": 209288, "scanner": "repobility-threat-engine", "fingerprint": "49a2b5841231cc6f72814139030ed566566952b7d80bb1b14fb624e62cddfa4d", "category": "injection", "severity": "info", "confidence": 0.1, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Safe pattern '\\.eval\\(' detected on same line", "evidence": {"match": ".eval(", "reason": "Safe pattern '\\.eval\\(' detected on same line", "rule_id": "SEC045", "scanner": "repobility-threat-engine", "confidence": 0.1, "correlation_key": "code|injection|token|138|sec045"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_dual_ddomain_n2i.py"}, "region": {"startLine": 138}}}]}, {"ruleId": "SEC045", "level": "none", "message": {"text": "[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data \u2014 even admin-stored data \u2014 is a lateral-movement vector after any one credential compromise. Sandboxes (__builtins__ cleared) are escapable: attackers use object introspection (().__class__.__mro__[-1].__subclasses__()) to reach os.system. CWE-95 (eval injection)."}, "properties": {"repobilityId": 209287, "scanner": "repobility-threat-engine", "fingerprint": "95efc08d5795f27d90c74beb32222890536cd5d390cfc7681bc52b3ff3449046", "category": "injection", "severity": "info", "confidence": 0.1, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Safe pattern '\\.eval\\(' detected on same line", "evidence": {"match": ".eval(", "reason": "Safe pattern '\\.eval\\(' detected on same line", "rule_id": "SEC045", "scanner": "repobility-threat-engine", "confidence": 0.1, "correlation_key": "code|injection|token|208|sec045"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_dual_ddomain_bilateral_n2i.py"}, "region": {"startLine": 208}}}]}, {"ruleId": "SEC045", "level": "none", "message": {"text": "[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data \u2014 even admin-stored data \u2014 is a lateral-movement vector after any one credential compromise. Sandboxes (__builtins__ cleared) are escapable: attackers use object introspection (().__class__.__mro__[-1].__subclasses__()) to reach os.system. CWE-95 (eval injection)."}, "properties": {"repobilityId": 209286, "scanner": "repobility-threat-engine", "fingerprint": "fb7cc81a6d65e3691e37d0c4cf3aa81c6acc4bfbdc2affef643b56c8aade05ff", "category": "injection", "severity": "info", "confidence": 0.1, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Safe pattern '\\.eval\\(' detected on same line", "evidence": {"match": ".eval(", "reason": "Safe pattern '\\.eval\\(' detected on same line", "rule_id": "SEC045", "scanner": "repobility-threat-engine", "confidence": 0.1, "correlation_key": "code|injection|ddssl_ldct/training.py|108|sec045"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ddssl_ldct/training.py"}, "region": {"startLine": 108}}}]}, {"ruleId": "MINED064", "level": "none", "message": {"text": "[MINED064] Python Input Call: input() blocks for stdin. Inappropriate in services."}, "properties": {"repobilityId": 209285, "scanner": "repobility-threat-engine", "fingerprint": "60b6416e2470a893117d3ac51eaa29456477227b0be890ead7c5902df10e3647", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "python-input-call", "owasp": null, "cwe_ids": [], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348050+00:00", "triaged_in_corpus": 12, "observations_count": 66378, "ai_coder_pattern_id": 124}, "scanner": "repobility-threat-engine", "correlation_key": "fp|60b6416e2470a893117d3ac51eaa29456477227b0be890ead7c5902df10e3647"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "data/stage_mayo_sinos.py"}, "region": {"startLine": 16}}}]}, {"ruleId": "COMP001", "level": "none", "message": {"text": "[COMP001] High cognitive complexity (and 64 more): Same pattern found in 64 additional files. Review if needed."}, "properties": {"repobilityId": 209284, "scanner": "repobility-threat-engine", "fingerprint": "3dc64b0b9d1a626a0df4c22d601b8165dcd88cf03d91107442341baa6c610bf4", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 64 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"scanner": "repobility-threat-engine", "function": "download", "breakdown": {"if": 6, "and": 1, "break": 1, "while": 1, "ternary": 2, "nested_bonus": 3}, "aggregated": true, "complexity": 14, "correlation_key": "fp|3dc64b0b9d1a626a0df4c22d601b8165dcd88cf03d91107442341baa6c610bf4", "aggregated_count": 64}}}, {"ruleId": "MINED055", "level": "none", "message": {"text": "[MINED055] Npm Install No Lockfile: Production image runs npm install (resolves new versions on every build) instead of npm ci."}, "properties": {"repobilityId": 209274, "scanner": "repobility-threat-engine", "fingerprint": "2027913aa3c59402d25719bfead3751ea924efe3e9b396b3015541c6ee00fdf7", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "npm-install-no-lockfile", "owasp": "A06:2021", "cwe_ids": ["CWE-1357"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348030+00:00", "triaged_in_corpus": 12, "observations_count": 317602, "ai_coder_pattern_id": 42}, "scanner": "repobility-threat-engine", "correlation_key": "fp|2027913aa3c59402d25719bfead3751ea924efe3e9b396b3015541c6ee00fdf7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cluster/setup.sh"}, "region": {"startLine": 54}}}]}, {"ruleId": "MINED062", "level": "none", "message": {"text": "[MINED062] Python Dataclass No Fields: @dataclass over an empty class \u2014 unfinished model."}, "properties": {"repobilityId": 209273, "scanner": "repobility-threat-engine", "fingerprint": "5a351d77ffb8230385f9d40c4d224eb9e4d3bd36b778c517857d2713cea5a581", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "python-dataclass-no-fields", "owasp": null, "cwe_ids": [], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348046+00:00", "triaged_in_corpus": 10, "observations_count": 92448, "ai_coder_pattern_id": 144}, "scanner": "repobility-threat-engine", "correlation_key": "fp|5a351d77ffb8230385f9d40c4d224eb9e4d3bd36b778c517857d2713cea5a581"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "challenges/_common.py"}, "region": {"startLine": 21}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.blend_min` used but never assigned in __init__: Method `forward` of class `TrainableWu2015` reads `self.blend_min`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209382, "scanner": "repobility-ast-engine", "fingerprint": "1b8530872e7c4e94c075d158195574b5bc53a2f592ac2d717583c26fccf70d06", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|1b8530872e7c4e94c075d158195574b5bc53a2f592ac2d717583c26fccf70d06"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_wu_2015_trainable.py"}, "region": {"startLine": 235}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.soft_thresh_max` used but never assigned in __init__: Method `forward` of class `TrainableWu2015` reads `self.soft_thresh_max`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209381, "scanner": "repobility-ast-engine", "fingerprint": "06c0448ccc640ec9f3f4c3f0f30bffc33081d9c716ad92a4b3f071fe8ec5111c", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|06c0448ccc640ec9f3f4c3f0f30bffc33081d9c716ad92a4b3f071fe8ec5111c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_wu_2015_trainable.py"}, "region": {"startLine": 229}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.soft_thresh_min` used but never assigned in __init__: Method `forward` of class `TrainableWu2015` reads `self.soft_thresh_min`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209380, "scanner": "repobility-ast-engine", "fingerprint": "4b136e582e4807648a1a6f9cc96d61b04c2bb3bff3759efa09a4e0d59506fb57", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|4b136e582e4807648a1a6f9cc96d61b04c2bb3bff3759efa09a4e0d59506fb57"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_wu_2015_trainable.py"}, "region": {"startLine": 228}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.band_scale_max` used but never assigned in __init__: Method `_aliasing_free_fbp` of class `TrainableWu2015` reads `self.band_scale_max`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209379, "scanner": "repobility-ast-engine", "fingerprint": "23b7747fb795e48ef35722743b557ab873a89647c53b77d8e6a87f1b62203141", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|23b7747fb795e48ef35722743b557ab873a89647c53b77d8e6a87f1b62203141"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_wu_2015_trainable.py"}, "region": {"startLine": 187}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.band_scale_min` used but never assigned in __init__: Method `_aliasing_free_fbp` of class `TrainableWu2015` reads `self.band_scale_min`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209378, "scanner": "repobility-ast-engine", "fingerprint": "3e332e953bf4a4e3c148b3ac6533e94f2a991547626d3427b7f2e15f84888464", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|3e332e953bf4a4e3c148b3ac6533e94f2a991547626d3427b7f2e15f84888464"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_wu_2015_trainable.py"}, "region": {"startLine": 187}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.band_centers` used but never assigned in __init__: Method `_aliasing_free_fbp` of class `TrainableWu2015` reads `self.band_centers`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209377, "scanner": "repobility-ast-engine", "fingerprint": "d6a1e499d3e7bf2721e16b7912c024733c017a3e4f1478c9a594ed09fbc29179", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|d6a1e499d3e7bf2721e16b7912c024733c017a3e4f1478c9a594ed09fbc29179"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_wu_2015_trainable.py"}, "region": {"startLine": 182}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.band_filters` used but never assigned in __init__: Method `_aliasing_free_fbp` of class `TrainableWu2015` reads `self.band_filters`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209376, "scanner": "repobility-ast-engine", "fingerprint": "2bcd4f1eac8ef3e88c1b0464ddd77205206c345861119efcb0db7fcb1e30e5e6", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|2bcd4f1eac8ef3e88c1b0464ddd77205206c345861119efcb0db7fcb1e30e5e6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_wu_2015_trainable.py"}, "region": {"startLine": 199}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.r_map` used but never assigned in __init__: Method `_aliasing_free_fbp` of class `TrainableWu2015` reads `self.r_map`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209375, "scanner": "repobility-ast-engine", "fingerprint": "4061568344fd5543bfe9266be05728f63dd0d3eb91525e1b335cab01224a4f69", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|4061568344fd5543bfe9266be05728f63dd0d3eb91525e1b335cab01224a4f69"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_wu_2015_trainable.py"}, "region": {"startLine": 181}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.r_map` used but never assigned in __init__: Method `_aliasing_free_fbp` of class `TrainableWu2015` reads `self.r_map`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209374, "scanner": "repobility-ast-engine", "fingerprint": "3b4f6f7aae985ac7f74773bf4f14a82ecb7066971ae8b4dbd3eb87e7ce881029", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|3b4f6f7aae985ac7f74773bf4f14a82ecb7066971ae8b4dbd3eb87e7ce881029"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_wu_2015_trainable.py"}, "region": {"startLine": 180}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.dc_norm` used but never assigned in __init__: Method `forward` of class `VNStep` reads `self.dc_norm`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209373, "scanner": "repobility-ast-engine", "fingerprint": "77ba279d30560eb81caefe8dc523bdb6f5fdc1a7037aac0e3383c777883e384e", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|77ba279d30560eb81caefe8dc523bdb6f5fdc1a7037aac0e3383c777883e384e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_hammernik_vn.py"}, "region": {"startLine": 155}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.inv_sigma_sq` used but never assigned in __init__: Method `_rho_prime` of class `VNStep` reads `self.inv_sigma_sq`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209372, "scanner": "repobility-ast-engine", "fingerprint": "fa8a555d72e3a27cfb742bebd174e3330170323965c49e4e0e9c0fdba02aa460", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|fa8a555d72e3a27cfb742bebd174e3330170323965c49e4e0e9c0fdba02aa460"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_hammernik_vn.py"}, "region": {"startLine": 136}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.centres` used but never assigned in __init__: Method `_rho_prime` of class `VNStep` reads `self.centres`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209371, "scanner": "repobility-ast-engine", "fingerprint": "7873ddf1c1ffb612f8eb412e8237a77d6e8a5a6f36978ffede582da225dbfd0e", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|7873ddf1c1ffb612f8eb412e8237a77d6e8a5a6f36978ffede582da225dbfd0e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_hammernik_vn.py"}, "region": {"startLine": 135}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.inv_sigma_sq` used but never assigned in __init__: Method `_rho_prime` of class `GDStep` reads `self.inv_sigma_sq`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209370, "scanner": "repobility-ast-engine", "fingerprint": "d7047617e8738c974f672bc25c7c91625058848ff65b14534900db09e9790aae", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|d7047617e8738c974f672bc25c7c91625058848ff65b14534900db09e9790aae"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_hammernik_2017.py"}, "region": {"startLine": 126}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.centres` used but never assigned in __init__: Method `_rho_prime` of class `GDStep` reads `self.centres`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209369, "scanner": "repobility-ast-engine", "fingerprint": "babe9261a4143ebeef22e7ef33b9cf1535cdd945acd3d1b2681db21a111d815a", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|babe9261a4143ebeef22e7ef33b9cf1535cdd945acd3d1b2681db21a111d815a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pentathlon/demo_dl_reference/solver_hammernik_2017.py"}, "region": {"startLine": 124}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.dv0` used but never assigned in __init__: Method `decode` of class `ForwardModel` reads `self.dv0`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209368, "scanner": "repobility-ast-engine", "fingerprint": "770f49ea0f0f37b7176e0944db97f8c5bbc67ac29b686dfcc052f14ccffeb23d", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|770f49ea0f0f37b7176e0944db97f8c5bbc67ac29b686dfcc052f14ccffeb23d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fit_geometry_forward_L014_v4.py"}, "region": {"startLine": 149}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.sdd0` used but never assigned in __init__: Method `decode` of class `ForwardModel` reads `self.sdd0`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209367, "scanner": "repobility-ast-engine", "fingerprint": "4d75989d9a401680459f488045d0d5f0d231e28405bab4b0492f9b2078f3f585", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|4d75989d9a401680459f488045d0d5f0d231e28405bab4b0492f9b2078f3f585"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fit_geometry_forward_L014_v4.py"}, "region": {"startLine": 146}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.sod0` used but never assigned in __init__: Method `decode` of class `ForwardModel` reads `self.sod0`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209366, "scanner": "repobility-ast-engine", "fingerprint": "64b51da5b66379db1ae7f5cfcca6a41ac782a2d39503d7ffa442b3dc695b84e3", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|64b51da5b66379db1ae7f5cfcca6a41ac782a2d39503d7ffa442b3dc695b84e3"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fit_geometry_forward_L014_v4.py"}, "region": {"startLine": 145}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._dy` used but never assigned in __init__: Method `_siddon_segments` of class `SiddonFanBeamProjector` reads `self._dy`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209340, "scanner": "repobility-ast-engine", "fingerprint": "ecf705a0388de00074e4f3ef72829aa1e41bf880791523bbe3f69de7217ed6ea", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|ecf705a0388de00074e4f3ef72829aa1e41bf880791523bbe3f69de7217ed6ea"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ddssl_ldct/siddon_projector.py"}, "region": {"startLine": 218}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._dx` used but never assigned in __init__: Method `_siddon_segments` of class `SiddonFanBeamProjector` reads `self._dx`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209339, "scanner": "repobility-ast-engine", "fingerprint": "083e487e62a8fbf0d9bbf5214174420db4dc26118f53acfde5dbea8a98cb4fd2", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|083e487e62a8fbf0d9bbf5214174420db4dc26118f53acfde5dbea8a98cb4fd2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ddssl_ldct/siddon_projector.py"}, "region": {"startLine": 218}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._sy` used but never assigned in __init__: Method `_siddon_segments` of class `SiddonFanBeamProjector` reads `self._sy`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209338, "scanner": "repobility-ast-engine", "fingerprint": "f282a6da8da3b63739fa3c6d232a1d2c2df1d6f8bf26375597c26d6d43a8cb48", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|f282a6da8da3b63739fa3c6d232a1d2c2df1d6f8bf26375597c26d6d43a8cb48"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ddssl_ldct/siddon_projector.py"}, "region": {"startLine": 217}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._sx` used but never assigned in __init__: Method `_siddon_segments` of class `SiddonFanBeamProjector` reads `self._sx`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209337, "scanner": "repobility-ast-engine", "fingerprint": "abb0bf906bb0f3676ce54bbaa4be96a5dd6ac6b80e41b4a2afd6b6037dea1277", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|abb0bf906bb0f3676ce54bbaa4be96a5dd6ac6b80e41b4a2afd6b6037dea1277"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ddssl_ldct/siddon_projector.py"}, "region": {"startLine": 217}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._sx` used but never assigned in __init__: Method `_siddon_segments` of class `SiddonFanBeamProjector` reads `self._sx`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209336, "scanner": "repobility-ast-engine", "fingerprint": "8a3a6ef6e1ac1024e3752397f0229c6c1798b15c13fc22a4b19d87fcf00e6872", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|8a3a6ef6e1ac1024e3752397f0229c6c1798b15c13fc22a4b19d87fcf00e6872"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ddssl_ldct/siddon_projector.py"}, "region": {"startLine": 215}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._sx` used but never assigned in __init__: Method `_siddon_segments` of class `SiddonFanBeamProjector` reads `self._sx`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209335, "scanner": "repobility-ast-engine", "fingerprint": "84cb46b3e25750e60184bedca965a331504cc94e5ce0e900c9f0760d8bedcd2d", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|84cb46b3e25750e60184bedca965a331504cc94e5ce0e900c9f0760d8bedcd2d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ddssl_ldct/siddon_projector.py"}, "region": {"startLine": 214}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._redundancy_weights` used but never assigned in __init__: Method `fbp` of class `PyronnFanBeamProjector` reads `self._redundancy_weights`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209334, "scanner": "repobility-ast-engine", "fingerprint": "63ee6e38f37d750f84e905d02cd13ce625d2cb05dc6d3932947bc6e43f51c858", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|63ee6e38f37d750f84e905d02cd13ce625d2cb05dc6d3932947bc6e43f51c858"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ddssl_ldct/pyronn_projector.py"}, "region": {"startLine": 452}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._redundancy_weights` used but never assigned in __init__: Method `fbp` of class `PyronnFanBeamProjector` reads `self._redundancy_weights`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 209333, "scanner": "repobility-ast-engine", "fingerprint": "1427263f717a81620facf5502b0f0ec493bae01dfb36316b3eed415a2b3821a7", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|1427263f717a81620facf5502b0f0ec493bae01dfb36316b3eed415a2b3821a7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ddssl_ldct/pyronn_projector.py"}, "region": {"startLine": 453}}}]}, {"ruleId": "SEC103", "level": "error", "message": {"text": "[SEC103] LDAP injection \u2014 non-constant search filter: User input concatenated into an LDAP search filter. Attackers inject `*)(uid=*` style payloads to bypass auth or enumerate accounts."}, "properties": {"repobilityId": 209300, "scanner": "repobility-threat-engine", "fingerprint": "ac297c24ca5ea90d7e01e120dfb6a89f4f6a8f3d024d7fdbc1376025d6dc7c9f", "category": "injection", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": ".search(r'Result: headroom=([\\d.]+)", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC103", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|injection|scripts/parse_tv_search.py|48|sec103"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/parse_tv_search.py"}, "region": {"startLine": 48}}}]}, {"ruleId": "MINED001", "level": "error", "message": {"text": "[MINED001] Bare Except Pass: except: pass or except Exception: pass \u2014 silently swallows everything including KeyboardInterrupt and bugs."}, "properties": {"repobilityId": 209292, "scanner": "repobility-threat-engine", "fingerprint": "951f5610f7672cbb7983e3cdb1c0172b67e9f0ac7d30cc81ad9fb3b7899e4d75", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "bare-except-pass", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347744+00:00", "triaged_in_corpus": 15, "observations_count": 1550824, "ai_coder_pattern_id": 6}, "scanner": "repobility-threat-engine", "correlation_key": "fp|951f5610f7672cbb7983e3cdb1c0172b67e9f0ac7d30cc81ad9fb3b7899e4d75"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dd_and_itnet_search.py"}, "region": {"startLine": 38}}}]}, {"ruleId": "MINED001", "level": "error", "message": {"text": "[MINED001] Bare Except Pass: except: pass or except Exception: pass \u2014 silently swallows everything including KeyboardInterrupt and bugs."}, "properties": {"repobilityId": 209291, "scanner": "repobility-threat-engine", "fingerprint": "7ca2ad5c95016d892c89a8209a66ea2631e8b87d30cf6b7dcf3a4d05d3289f77", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "bare-except-pass", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347744+00:00", "triaged_in_corpus": 15, "observations_count": 1550824, "ai_coder_pattern_id": 6}, "scanner": "repobility-threat-engine", "correlation_key": "fp|7ca2ad5c95016d892c89a8209a66ea2631e8b87d30cf6b7dcf3a4d05d3289f77"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/bf_search_agent.py"}, "region": {"startLine": 35}}}]}, {"ruleId": "MINED001", "level": "error", "message": {"text": "[MINED001] Bare Except Pass: except: pass or except Exception: pass \u2014 silently swallows everything including KeyboardInterrupt and bugs."}, "properties": {"repobilityId": 209290, "scanner": "repobility-threat-engine", "fingerprint": "e252a906419de1c84b412a9c1b6c21bf8b617d73ec8a4fa42cc78193843632f7", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "bare-except-pass", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347744+00:00", "triaged_in_corpus": 15, "observations_count": 1550824, "ai_coder_pattern_id": 6}, "scanner": "repobility-threat-engine", "correlation_key": "fp|e252a906419de1c84b412a9c1b6c21bf8b617d73ec8a4fa42cc78193843632f7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/agent4ct_record.py"}, "region": {"startLine": 142}}}]}, {"ruleId": "SEC128", "level": "error", "message": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work completes \u2014 DB writes lost, emails not sent, race conditions. This is one of the top-3 errors AI coders make: they understand async-shape but drop the await keyword when chaining multiple ops. Surfaces as flaky tests or silently dropped data in production."}, "properties": {"repobilityId": 209280, "scanner": "repobility-threat-engine", "fingerprint": "15aa19faf0169d193eded7003dd685e5fc1c814b4df6427616fff1f98d525d1f", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "torch.save(blob, out_pt)", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|15aa19faf0169d193eded7003dd685e5fc1c814b4df6427616fff1f98d525d1f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/cache_proj_flat_L014_full.py"}, "region": {"startLine": 110}}}]}, {"ruleId": "SEC128", "level": "error", "message": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work completes \u2014 DB writes lost, emails not sent, race conditions. This is one of the top-3 errors AI coders make: they understand async-shape but drop the await keyword when chaining multiple ops. Surfaces as flaky tests or silently dropped data in production."}, "properties": {"repobilityId": 209279, "scanner": "repobility-threat-engine", "fingerprint": "cf1b59382536ea4d62a163913323247b6a8a9f18b571a99d6e0a5ed8ad67c812", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "torch.save(blob, out_pt)", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|cf1b59382536ea4d62a163913323247b6a8a9f18b571a99d6e0a5ed8ad67c812"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/cache_proj_flat_L014.py"}, "region": {"startLine": 138}}}]}, {"ruleId": "SEC128", "level": "error", "message": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work completes \u2014 DB writes lost, emails not sent, race conditions. This is one of the top-3 errors AI coders make: they understand async-shape but drop the await keyword when chaining multiple ops. Surfaces as flaky tests or silently dropped data in production."}, "properties": {"repobilityId": 209278, "scanner": "repobility-threat-engine", "fingerprint": "2edfcf70db56e51aad5635c19789a2abe54b1cee331a4cf19030bb7d08168519", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "h.update(buf)", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|2edfcf70db56e51aad5635c19789a2abe54b1cee331a4cf19030bb7d08168519"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "data/_common.py"}, "region": {"startLine": 38}}}]}, {"ruleId": "SEC029", "level": "error", "message": {"text": "[SEC029] Server-Side Request Forgery (SSRF) \u2014 outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.254.169.254 metadata, internal Kubernetes endpoints, file:// URIs), exfiltrate data, or pivot through your network. SSRF is OWASP A10:2021 and a frequent foothold in cloud breaches."}, "properties": {"repobilityId": 209277, "scanner": "repobility-threat-engine", "fingerprint": "c55dc3c4fd00cd33e8da35d7c5e735da1b66a8a0dc7c08fb63d753110dcf473d", "category": "ssrf", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "urllib.request.urlopen(u", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC029", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|c55dc3c4fd00cd33e8da35d7c5e735da1b66a8a0dc7c08fb63d753110dcf473d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "data/fetch_dl_spectral.py"}, "region": {"startLine": 62}}}]}, {"ruleId": "SEC029", "level": "error", "message": {"text": "[SEC029] Server-Side Request Forgery (SSRF) \u2014 outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.254.169.254 metadata, internal Kubernetes endpoints, file:// URIs), exfiltrate data, or pivot through your network. SSRF is OWASP A10:2021 and a frequent foothold in cloud breaches."}, "properties": {"repobilityId": 209276, "scanner": "repobility-threat-engine", "fingerprint": "58e441da1b6bbff4912e3224a96df9a208b1c3b6d5b58efe356c322c99d5f328", "category": "ssrf", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "urllib.request.urlopen(u", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC029", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|58e441da1b6bbff4912e3224a96df9a208b1c3b6d5b58efe356c322c99d5f328"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "data/fetch_dl_sparse_view.py"}, "region": {"startLine": 103}}}]}, {"ruleId": "SEC029", "level": "error", "message": {"text": "[SEC029] Server-Side Request Forgery (SSRF) \u2014 outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.254.169.254 metadata, internal Kubernetes endpoints, file:// URIs), exfiltrate data, or pivot through your network. SSRF is OWASP A10:2021 and a frequent foothold in cloud breaches."}, "properties": {"repobilityId": 209275, "scanner": "repobility-threat-engine", "fingerprint": "50030d257df2eb53c722158bbb5b800a976c507c6f83398257ccec71ba84b703", "category": "ssrf", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "urllib.request.urlopen(r", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC029", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|50030d257df2eb53c722158bbb5b800a976c507c6f83398257ccec71ba84b703"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "data/_common.py"}, "region": {"startLine": 57}}}]}, {"ruleId": "CORE_NO_TESTS", "level": "error", "message": {"text": "No test files found"}, "properties": {"repobilityId": 209270, "scanner": "repobility-core", "fingerprint": "0200e9918bc2a7bf9c116d0907e50ac3df640c758b93852cf1890ec6e14d870d", "category": "testing", "severity": "high", "confidence": null, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"rule_id": "CORE_NO_TESTS", "scanner": "repobility-core", "correlation_key": "repo|testing|core_no_tests"}}}, {"ruleId": "MINED107", "level": "error", "message": {"text": "[MINED107] Missing import: `stat` used but not imported: The file uses `stat.something(...)` but never imports `stat`. This raises NameError at runtime the first time the line executes."}, "properties": {"repobilityId": 209346, "scanner": "repobility-ast-engine", "fingerprint": "9a0767ef8949fc2c96408c57a78acc7990fff16f5096c6203b8f89c7f87cc9c8", "category": "quality", "severity": "critical", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "missing-import-python", "owasp": "A06:2021", "cwe_ids": ["CWE-1075"], "languages": ["python"], "observations_count": 2192}, "scanner": "repobility-ast-engine", "correlation_key": "fp|9a0767ef8949fc2c96408c57a78acc7990fff16f5096c6203b8f89c7f87cc9c8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "data/_common.py"}, "region": {"startLine": 140}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "[MINED107] Missing import: `time` used but not imported: The file uses `time.something(...)` but never imports `time`. This raises NameError at runtime the first time the line executes."}, "properties": {"repobilityId": 209343, "scanner": "repobility-ast-engine", "fingerprint": "c3d9d5c371c1c4e0f2d4024fe1bdfa79e8140e14698dfe53b3301863c9610313", "category": "quality", "severity": "critical", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "missing-import-python", "owasp": "A06:2021", "cwe_ids": ["CWE-1075"], "languages": ["python"], "observations_count": 2192}, "scanner": "repobility-ast-engine", "correlation_key": "fp|c3d9d5c371c1c4e0f2d4024fe1bdfa79e8140e14698dfe53b3301863c9610313"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cluster/rrze_agent.py"}, "region": {"startLine": 680}}}]}, {"ruleId": "scanner-506be2b95088f5d3", "level": "none", "message": {"text": "git log failed \u2014 history analysis incomplete"}, "properties": {"repobilityId": "b424308a11bb9b22", "scanner": "scanner-primary", "fingerprint": "506be2b95088f5d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["git", "tooling"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "3226b050742a557b", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "27fb0924d1e28c3d", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "6caa5c207e1cd487", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}]}]}