.github/workflows/build.yml:32 | Workflow execution on documentation and fragment changes (paths-ignore: docs/**, **/*.md, changelog.d/**, CHANGELOG.md, | ADR-0341: skip CI runs for doc-only changes |
.github/workflows/docker-image.yml:5 | Docker image build on push for changes outside core/**, Dockerfile, .dockerignore, meson build files | ADR-0317: Only fire when Docker build inputs actually change. Doc-only / Python-only PRs d |
.github/workflows/docker-image.yml:24 | Docker image build on PR for changes outside core/**, Dockerfile, .dockerignore, meson build files | ADR-0317 / ADR-0331: Path filter on pull request |
.github/workflows/ffmpeg-integration.yml:5 | FFmpeg integration matrix on push for changes outside core/**, ffmpeg-patches/**, meson build files | ADR-0317: Only fire when inputs it consumes change; doc-only/Python-only PRs were burning |
.github/workflows/ffmpeg-integration.yml:23 | FFmpeg integration matrix on PR for changes outside core/**, ffmpeg-patches/**, meson build files | ADR-0317 / ADR-0331: Path filter on pull request |
.github/workflows/go-ci.yml:5 | Go CI workflow on push for changes outside **/*.go, go.mod, go.sum | none (implicit path filtering for Go subtree) |
.github/workflows/go-ci.yml:10 | Go CI workflow on PR for changes outside **/*.go, go.mod, go.sum | none (implicit path filtering for Go subtree) |
.github/workflows/helm-chart.yml:11 | Helm chart workflow on push for changes outside deploy/helm/** | none (implicit path filtering for Helm chart) |
.github/workflows/helm-chart.yml:15 | Helm chart workflow on PR for changes outside deploy/helm/** | none (implicit path filtering for Helm chart) |
.github/workflows/libvmaf-build-matrix.yml:20 | Build matrix on PR for doc changes (paths-ignore: docs/**, **/*.md, changelog.d/**, CHANGELOG.md, .workingdir2/**) | ADR-0341 / Research-0089 §3.2: skip full 18-cell build matrix when only documentation path |
.github/workflows/libvmaf-build-matrix.yml:62 | macOS clang (CPU) build leg failure gating (experimental: true) | macOS leg stays experimental: true so a Homebrew bump doesn't block merge |
.github/workflows/libvmaf-build-matrix.yml:109 | macOS clang (CPU) + DNN build leg failure gating (experimental: true) | macOS leg stays experimental: true so a Homebrew ORT bump that breaks ABI doesn't block me |
.github/workflows/libvmaf-build-matrix.yml:208 | Matrix build job failure gating (continue-on-error: ${{ matrix.experimental == true }}) | ADR-0726: continue-on-error now depends only on matrix.experimental |
.github/workflows/lint-and-format.yml:78 | Clang-Tidy C/C++ early skip probe based on git diff | Early file-delta probe — if PR/push touches no C/C++ files, short-circuit before apt-insta |
.github/workflows/lint-and-format.yml:198 | Clang-Tidy excludes core/test/tiny_ai_test_template.h | Template header evaluated only in instantiated test contexts |
.github/workflows/lint-and-format.yml:203 | Clang-Tidy excludes core/src/mcp/ | requires -Denable_mcp=true meson setup |
.github/workflows/lint-and-format.yml:204 | Clang-Tidy excludes core/test/test_mcp* | requires -Denable_mcp=true meson setup |
.github/workflows/lint-and-format.yml:208 | Clang-Tidy excludes core/test/fuzz/ | requires -Dfuzz=true and libFuzzer instrumentation |
.github/workflows/lint-and-format.yml:209 | Clang-Tidy excludes core/src/compat/win32/ | Win32 pthread / getopt compatibility shims |
.github/workflows/lint-and-format.yml:344 | Clang-Tidy SYCL job changed-files detection (git diff --name-only) | Detect changed SYCL files; skips job body if empty |
.github/workflows/lint-and-format.yml:509 | mypy check on ai/ and scripts/ (// echo 'mypy advisory only on first run') | pre-commit hook runs it; advisory exit because numpy/torch stubs |
.github/workflows/lint-and-format.yml:633 | Markdownlint job changed-files detection (git diff --name-only) | ADR-0866: only staged/changed *.md files are linted so pre-existing warning tail does not |
.github/workflows/nightly.yml:64 | Nightly clang-tidy full run swallows errors (// true) | Nightly diagnostic sweep; produces full log without failing |
.github/workflows/nightly.yml:85 | Nightly benchmark run swallows errors (bash testdata/bench_all.sh // true) | Swallows benchmark exit code |
.github/workflows/rule-enforcement.yml:120 | Deep-dive deliverables gate scopes to changed files (git diff --name-only \({BASE_SHA}..\)) | ADR-0108 deep dive deliverables check scoped to PR file delta |
.github/workflows/rule-enforcement.yml:270 | ADR-Backfill Advisory job (continue-on-error: true) | ADR-0106 advisory: policy / public-surface paths changed without a new ADR |
.github/workflows/rule-enforcement.yml:290 | ADR-Backfill Advisory scopes to changed files (git diff --name-only \({BASE_SHA}..\)) | Scopes ADR detection to changed files in PR |
.github/workflows/rust-ci.yml:6 | Rust CI workflow on push for changes outside bindings/rust/**, core/src/feature/rust/**, Cargo.*, deny.toml | none (scoped to Rust files) |
.github/workflows/rust-ci.yml:14 | Rust CI workflow on PR for changes outside bindings/rust/**, core/src/feature/rust/**, Cargo.*, deny.toml | none (scoped to Rust files) |
.github/workflows/sanitizers.yml:27 | Sanitizers workflow on PR for doc changes (paths-ignore: docs/**, **/*.md, changelog.d/**, CHANGELOG.md, .workingdir2/** | Skip sanitizer runs on doc-only changes |
.github/workflows/sanitizers.yml:146 | ASan/UBSan deselects 5 test targets (grep -vE 'test_model$/test_y4m_alloc_failure$/test_gpu_picture_pool_uaf$/test_integ | Tracked as T-GPU-POOL-UAF-OOM-TSAN-ABORT... ADR-0347 deselect list; allocators fatal on in |
.github/workflows/sanitizers.yml:235 | TSan deselects 5 test targets (grep -vE 'test_model$/test_y4m_alloc_failure$/test_gpu_picture_pool_uaf$/test_integer_mot | TSan deselect list (ADR-0347 / T-GPU-POOL-UAF-OOM-TSAN-ABORT) |
.github/workflows/security-scans.yml:60 | Semgrep registry rule packs step (continue-on-error: true) | We don't gate merges on registry findings; CodeQL is merge gate... continue-on-error becau |
.github/workflows/security-scans.yml:81 | Semgrep registry rule packs scan swallows errors (--sarif --output=semgrep-registry.sarif // true) | Swallows exit code from registry rule packs scan |
.github/workflows/tests-and-quality-gates.yml:25 | Quality gates workflow on PR for doc changes (paths-ignore: docs/**, **/*.md, changelog.d/**, CHANGELOG.md, .workingdir2 | Skip quality gates on doc-only changes |
.github/workflows/tests-and-quality-gates.yml:253 | Sanitizers matrix deselects test_model under address sanitizer (EXCLUDE='test_model$') | ASan deselects: test_model (svm.cpp parser alloc-too-big on malformed JSON)... ADR-0347 |
.github/workflows/tests-and-quality-gates.yml:265 | Sanitizers matrix deselects test_model under undefined sanitizer (EXCLUDE='test_model$') | UBSan deselects: test_model (NULL-to-nonnull memcpy in svm.cpp parser)... ADR-0347 |
.github/workflows/tests-and-quality-gates.yml:274 | Sanitizers matrix deselects test_model under thread sanitizer (EXCLUDE='test_model$') | TSan deselects: test_model (same defect as ASan/UBSan)... ADR-0347 |
.github/workflows/tests-and-quality-gates.yml:637 | CPU coverage pytest excludes python/test/resource, cy_test.py, cambi_test.py | Resource files are non-importable configs; cy_test and cambi_test excluded from coverage r |
.github/workflows/tests-and-quality-gates.yml:640 | CPU coverage pytest deselects CommandLineTest and swallows exit code (--deselect python/test/command_line_test.py::Comma | Deselecting CommandLineTest lets alphabetically-later suites execute and contribute covera |
.github/workflows/e2e-k8s.yml:87 | Kubernetes e2e test suite step has continue-on-error: true | none |
.clang-tidy:22 | Disabled clang-tidy check: -bugprone-easily-swappable-parameters | none (introduced in commit 7af089949 without comment) |
.clang-tidy:23 | Disabled clang-tidy check: -bugprone-narrowing-conversions | none (introduced in commit 7af089949 without comment) |
.clang-tidy:24 | Disabled clang-tidy check: -clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling | none (introduced in commit 7af089949 without comment) |
.clang-tidy:25 | Disabled clang-tidy check: -misc-include-cleaner | none (introduced in commit 7af089949 without comment) |
.clang-tidy:26 | Disabled clang-tidy check: -misc-no-recursion | none (introduced in commit 7af089949 without comment) |
.clang-tidy:27 | Disabled clang-tidy check: -modernize-use-trailing-return-type | none (introduced in commit 7af089949 without comment) |
.clang-tidy:28 | Disabled clang-tidy check: -modernize-use-auto | none (introduced in commit 7af089949 without comment) |
.clang-tidy:29 | Disabled clang-tidy check: -modernize-avoid-c-arrays | none (introduced in commit 7af089949 without comment) |
.clang-tidy:30 | Disabled clang-tidy check: -modernize-use-nodiscard | none (introduced in commit 7af089949 without comment) |
.clang-tidy:31 | Disabled clang-tidy check: -modernize-avoid-c-style-cast | none (introduced in commit 7af089949 without comment) |
.clang-tidy:32 | Disabled clang-tidy check: -modernize-macro-to-enum | none (introduced in commit 7af089949 without comment) |
.clang-tidy:33 | Disabled clang-tidy check: -modernize-avoid-variadic-functions | none (introduced in commit 7af089949 without comment) |
.clang-tidy:35 | WarningsAsErrors subset: only 10 specific checks treated as fatal errors | none (progressive adoption gating in commit 7af089949) |
.clang-tidy:47 | HeaderFilterRegex: '^(core/(include/src/tools/test)/python/ai)/.*.(h/hpp/hxx/cuh)$' | Lint our code; skip vendored / generated. |
.cppcheck-suppressions.txt:7 | Cppcheck excludes *:core/src/svm.cpp | Upstream Netflix svm.cpp — entirely vendored, not modified by fork. |
.cppcheck-suppressions.txt:21 | Cppcheck suppresses unusedFunction on core/src/feature/*_avx512.c | False positives we've reviewed; revisit yearly. |
.cppcheck-suppressions.txt:22 | Cppcheck suppresses unusedFunction on core/src/feature/*_avx2.c | False positives we've reviewed; revisit yearly. |
.cppcheck-suppressions.txt:23 | Cppcheck suppresses unusedFunction on core/src/feature/*_neon.c | False positives we've reviewed; revisit yearly. |
.cppcheck-suppressions.txt:24 | Cppcheck suppresses unusedFunction on core/src/cuda/*.cu | False positives we've reviewed; revisit yearly. |
.cppcheck-suppressions.txt:25 | Cppcheck suppresses unusedFunction on core/src/sycl/*.cpp | False positives we've reviewed; revisit yearly. |
.cppcheck-suppressions.txt:31 | Cppcheck suppresses uninitvar on core/test/test_propagate_metadata.c | cppcheck 2.13 doesn't recognise = {0} aggregate init as covering all members. |
.cppcheck-suppressions.txt:32 | Cppcheck suppresses uninitStructMember on core/test/test_propagate_metadata.c | cppcheck 2.13 doesn't recognise = {0} aggregate init as covering all members. |
.cppcheck-suppressions.txt:36 | Cppcheck suppresses invalidPrintfArgType_sint on core/src/output.c | Upstream Netflix code: printf format / pointer cast / void arithmetic warnings. These are |
.cppcheck-suppressions.txt:37 | Cppcheck suppresses invalidPrintfArgType_sint on core/src/read_json_model.c | Upstream Netflix code: printf format / pointer cast / void arithmetic warnings. These are |
.cppcheck-suppressions.txt:38 | Cppcheck suppresses invalidPrintfArgType_sint on core/test/test_framesync.c | Upstream Netflix code: printf format / pointer cast / void arithmetic warnings. These are |
.cppcheck-suppressions.txt:39 | Cppcheck suppresses invalidPrintfArgType_sint on core/test/test_predict.c | Upstream Netflix code: printf format / pointer cast / void arithmetic warnings. These are |
.cppcheck-suppressions.txt:40 | Cppcheck suppresses invalidPrintfArgType_sint on core/test/test_thread_pool.c | Upstream Netflix code: printf format / pointer cast / void arithmetic warnings. These are |
.cppcheck-suppressions.txt:41 | Cppcheck suppresses invalidPrintfArgType_sint on core/tools/vmaf.cpp | Upstream Netflix code: printf format / pointer cast / void arithmetic warnings. These are |
.cppcheck-suppressions.txt:42 | Cppcheck suppresses uninitvar on core/src/predict.c | Upstream Netflix code: printf format / pointer cast / void arithmetic warnings. These are |
.cppcheck-suppressions.txt:43 | Cppcheck suppresses arithOperationsOnVoidPointer on core/src/feature/integer_vif.c | Upstream Netflix code: printf format / pointer cast / void arithmetic warnings. These are |
.cppcheck-suppressions.txt:44 | Cppcheck suppresses invalidPointerCast on core/src/opt.c | Upstream Netflix code: printf format / pointer cast / void arithmetic warnings. These are |
.cppcheck-suppressions.txt:45 | Cppcheck suppresses invalidPointerCast on core/src/opt.cpp | Upstream Netflix code: printf format / pointer cast / void arithmetic warnings. These are |
.cppcheck-suppressions.txt:46 | Cppcheck suppresses invalidPointerCast on core/src/feature/x86/float_adm_avx2.c | Upstream Netflix code: printf format / pointer cast / void arithmetic warnings. These are |
.cppcheck-suppressions.txt:47 | Cppcheck suppresses duplicateAssignExpression on core/src/feature/integer_adm.c | Upstream Netflix code: printf format / pointer cast / void arithmetic warnings. These are |
.cppcheck-suppressions.txt:48 | Cppcheck suppresses duplicateAssignExpression on core/src/feature/x86/adm_avx2.c | Upstream Netflix code: printf format / pointer cast / void arithmetic warnings. These are |
.cppcheck-suppressions.txt:49 | Cppcheck suppresses duplicateAssignExpression on core/src/feature/x86/adm_avx512.c | Upstream Netflix code: printf format / pointer cast / void arithmetic warnings. These are |
.cppcheck-suppressions.txt:50 | Cppcheck suppresses shiftNegativeLHS on core/src/feature/x86/adm_avx2.c | Upstream Netflix code: printf format / pointer cast / void arithmetic warnings. These are |
.cppcheck-suppressions.txt:51 | Cppcheck suppresses shiftNegativeLHS on core/src/feature/x86/adm_avx512.c | Upstream Netflix code: printf format / pointer cast / void arithmetic warnings. These are |
.cppcheck-suppressions.txt:53 | Cppcheck suppresses missingIncludeSystem globally | none |
.cppcheck-suppressions.txt:54 | Cppcheck suppresses unmatchedSuppression globally | none |
.semgrep.yml:57 | vmaf-no-system-rand rule excludes /core/src/svm.cpp | Upstream Netflix SVM cross-validation uses rand() for fold shuffling. Tracked as cleanup d |
.semgrep.yml:71 | vmaf-no-strcpy-strcat-sprintf rule excludes /matlab/**, /core/tools/cli_parse.c, /core/tools/y4m_input.c | Upstream Netflix tree — tracked as cleanup debt, not gated here: cli_parse.c (sprintf), y4 |
.semgrepignore:10 | Semgrep ignores python/vmaf/matlab/ and compat/python-vmaf/matlab/ | Netflix-upstream MATLAB MEX helpers. Pure research reference, not linked into libvmaf... ( |
pyproject.toml:35 | Black extend-exclude: .git, build, dist, subprojects, python/test/resource, compat/python-vmaf/resource, compat/python-v | none |
pyproject.toml:51 | Ruff extend-exclude: build, subprojects, python/test/resource, compat/python-vmaf/resource, compat/python-vmaf/matlab | none |
pyproject.toml:75 | Ruff ignore list: E501, PLR0913, S101, PLR0917, BLE001, S110, TRY004, SIM102, SIM103, SIM117, PLC0206, PLR0124, PLW1510, | Rules that began firing with ruff 0.15.17 -> 0.16.5 bump... deferred rather than silenced. |
pyproject.toml:116 | Ruff per-file-ignores on 'python/**' (S, PL, B, C4, PIE, RET, SIM, RUF, I001, PTH, F401, F522, F541, F841, E402, E711, E | Upstream Netflix Python is not our style canon. Keep F821... silence bugbear / security / |
pyproject.toml:125 | Ruff per-file-ignores on 'testdata/**' (S, PL, B, SIM, RUF, I001, PTH, F401, F541, F841, E401, E402, E701, E722, W291, W | Ad-hoc developer benchmark + one-off comparison scripts... style drift is acceptable and b |
pyproject.toml:135 | Ruff per-file-ignores on 'compat/python-vmaf/**' (S, PL, B, C4, PIE, RET, SIM, RUF, I001, PTH, F401, F522, F541, F841, E | Upstream Netflix Python harness, relocated from python/vmaf/ to compat/python-vmaf/ by VMA |
pyproject.toml:145 | Ruff per-file-ignores on 'compat/python-vmaf/resource/**' (S, PL, B, SIM, RUF, I001, PTH, F401, F541, F841, E401, E402, | Upstream Netflix dataset / model config scripts. Pure data, not business logic... belt-and |
pyproject.toml:173 | Mypy excludes build/, subprojects/, python/test/resource/, ai/src/ | ai/src/ itself is excluded from file-scan list to prevent duplicate-module-name error |
pyproject.toml:180 | Mypy override ignores errors on 'vmaf.*' (ignore_errors = true) | upstream library — not our type stubs to maintain |
pyproject.toml:184 | Mypy override ignores errors on 'ai.src.*', 'ai.src.vmaf_train.*' (ignore_errors = true) | Suppress 'Source file found twice' errors for ai.src.vmaf_train.* namespace |
python/tox.ini:26 | Tox pytest disables warnings (-p no:warnings) | TODO: way too many warnings in tests, remove -p no:warnings and get rid of them all |
python/tox.ini:42 | Tox coverage env ignores non-zero exit code (ignore_outcome = true) | ignore_outcome = true prevents a non-zero exit from this env from failing overall tox invo |
.pre-commit-config.yaml:75 | black hook scoped to (python/ai/scripts/tools) and excludes python/test/resource, compat/python-vmaf/resource, matlab | Upstream Netflix training-harness tree — not authored by us; see pyproject.toml [tool.blac |
.pre-commit-config.yaml:83 | ruff-check hook scoped to (python/ai/scripts/tools) and excludes python/test/resource, compat/python-vmaf/resource, matl | Upstream Netflix training-harness tree — not authored by us |
.pre-commit-config.yaml:227 | assertion-density hook passes pass_filenames: false | The script self-discovers fork-added files via the 'Copyright * Lusoris' copyright marker; |
.pre-commit-config.yaml:236 | mypy-local hook scoped to '^(ai/scripts)/.*.py$' | Pre-push only — running mypy on every commit doubles a 1-line edit's commit time |
.pre-commit-config.yaml:288 | semgrep-local hook excludes subprojects, test/data, resource, matlab, pdjson.{c,h} | Mirror check-copyright's exclude list — same upstream / vendored paths that ship with thei |
Makefile:155 | lint-c: clang-tidy excludes subprojects and core/src/interop/pelorus_*; omits core/test, GPU kernels, compat | FILES=$(git ls-files 'core/src/**/*.c' 'core/src/**/*.cpp' 'core/tools/*.c' / grep -v '^su |
Makefile:160 | lint-c: cppcheck uses --suppressions-list=.cppcheck-suppressions.txt | Uses suppression file |
Makefile:167 | lint-py: ruff check python/ ai/ scripts/ & black --check python/ ai/ scripts/ (omits tools/, compat/, testdata/) | Scoped to selected Python directories |
Makefile:176 | lint-py: -mypy ai/scripts/ ai/tests/ ai/train/ ai/lpips_export.py scripts/ (leading '-' ignores failures) | mypy is advisory (leading -): it currently reports ~295 module-resolution errors... that s |
Makefile:190 | lint-md: MDLINT_SCOPE ?= changed defaults to changed files vs origin/master | ADR-0866: Default scope is the touched-file delta vs origin/master so the ~6.2k pre-existi |
Makefile:219 | format: format commands append '// true' and exclude subprojects, test/data, pelorus | Swallows formatter exit codes |
scripts/ci/assertion-density.sh:29 | assertion-density.sh excludes upstream Netflix files and Pelorus mirror | Scope: files whose copyright header contains a Lusoris copyright line... Upstream Netflix |
core/meson.build:8 | default_options warning_level=2 (werror=false) | Meson default options |
core/src/meson.build:1886 | libsvm_cpp_args += ['-U_LIBCPP_ENABLE_ASSERTIONS'] on clang/apple-clang | Undefines libc++ assertions on clang/apple-clang for vendored libsvm |
.github/codeql-config.yml:26 | CodeQL paths whitelist restricts analysis to 10 specific directory trees | Limits CodeQL scanning scope |
.github/codeql-config.yml:38 | CodeQL paths-ignore excludes subprojects, build, core/test, python/test, testdata, third_party, generated, gen/go | Excludes test suites, build artifacts, fixtures, generated code |