semgrep/semgrep
hmRIYnlj from 2026-05-10, even if a newer public scan exists for this repo.
Nine dimensions
Deterministic findings
Copyleft license: LGPL-2.1
Derivative works may need to be open-sourced under the same terms — review compatibility with your business model.
Top findings (AI)
LGPL-2.1 copyleft license creates legal red zone for commercial redistribution
License file declares LGPL-2.1 for the project. LGPL requires anyone distributing linked binaries to provide source code or a written offer. For a venture building a SaaS or paid product using semgrep as a core engine, this is a significant legal liability. The Apache-2.0 Python wrapper alone does not solve this because the OCaml core is the actual analysis engine.
Autogenerated CI workflows hide real configuration, creating maintenance risk
Every workflow file begins '# AUTOGENERATED FROM *.jsonnet DO NOT MODIFY'. A lint job exists (.github/workflows/lint.yml) to detect drift, but jsonnet-to-YAML is a two-source-of-truth pattern. If the jsonnet build breaks or diverges, CI behavior becomes opaque to anyone reading the YAML directly.
No observable error tracking or structured telemetry endpoint
libs/telemetry/Logging.mli exists as a signal that telemetry was considered, but no error tracking service (Sentry, Bugsnag, Rollbar) is integrated. For a CLI tool that runs in customer environments, this means failures are silent unless the user reports them. observability < 12 is the hard ceiling for CLI tools with no structured error output visible.
Snapshot tests dominate the test suite, obscuring actual unit coverage
7965 test files are present, but examination of the file tree shows massive use of snapshot directories (cli/tests/default/e2e-other/snapshots/, cli/tests/default/e2e/snapshots/). These verify output fidelity, not logic correctness. OCaml unit tests for the core engine in src/ are not independently visible.
Repository bloat from 7965 test files and snapshot artifacts
Massive test artifact count (7965 test files) inflates repo size and clone time. The .codemapignore file suggests this is a known problem. Large snapshot directories slow CI and make the repo harder to audit for actual code quality signals.