ADRs tagged ci¶
Auto-generated by scripts/docs/generate-adr-by-tag.sh. Edit ADR Tags: lines to update.
340 ADR(s) carry this tag.
| ID | Title |
|---|---|
| ADR-0004 | Auto-push sycl and master to origin after merges |
| ADR-0005 | Adopt full framework adaptation scope a-g |
| ADR-0015 | CI matrix Linux/macOS/Windows with sanitizers |
| ADR-0018 | Claude hooks scope includes safety and auto-format |
| ADR-0024 | Preserve Netflix source-of-truth tests verbatim |
| ADR-0027 | Non-conservative image pins with experimental toolchain flags |
| ADR-0033 | Relocate CodeQL config to .github/ |
| ADR-0037 | Protect master branch on GitHub with required checks |
| ADR-0109 | Nightly bisect-model-quality runs against a synthetic placeholder cache |
| ADR-0110 | Coverage gate -fprofile-update=atomic for parallel meson tests |
| ADR-0111 | Coverage gate lcov → gcovr with ORT in the coverage job |
| ADR-0113 | ORT CreateSession fallback to CPU + multi-EP CI install |
| ADR-0114 | Per-file coverage-gate overrides for ort_backend.c + dnn_api.c |
| ADR-0115 | CI workflows trigger on master only; consolidate windows.yml into libvmaf.yml |
| ADR-0116 | CI workflow naming convention — purpose-named files + Title Case display names |
| ADR-0117 | Coverage-Gate annotation cleanup (gcov hits + upload-artifact) |
| ADR-0118 | FFmpeg patches ship as ordered series.txt, not a single carry |
| ADR-0120 | DNN-enabled matrix legs across compilers + macOS |
| ADR-0121 | Windows GPU build-only matrix legs (MSVC + CUDA, MSVC + oneAPI SYCL) |
| ADR-0124 | Automate enforcement of process ADRs (0100 / 0105 / 0106 / 0108) |
| ADR-0133 | Clang-Tidy push-event should scan push delta, not full tree |
| ADR-0136 | Strip markdown emphasis/code characters before ADR-0108 deliverables grep |
| ADR-0141 | Every PR leaves its touched files lint-clean |
| ADR-0151 | i686 build-only CI job — reproduce Netflix #1481 |
| ADR-0167 | Path-mapped doc-drift enforcement (local hook + CI gate) |
| ADR-0173 | PTQ int8 audit implementation — registry schema + scripts + CI gate (T5-3) |
| ADR-0174 | First per-model PTQ — learned_filter_v1 dynamic int8 (T5-3b) |
| ADR-0176 | Vulkan VIF cross-backend gate (lavapipe + Arc nightly) |
| ADR-0208 | First per-model QAT — learned_filter_v1 int8 (T5-4) |
| ADR-0213 | SSIMULACRA 2 SVE2 SIMD parity |
| ADR-0214 | GPU-parity CI gate (T6-8) — cross-device variance matrix |
| ADR-0217 | SYCL toolchain cleanup — multi-version recipe + icpx-aware clang-tidy wrapper |
| ADR-0221 | CHANGELOG + ADR-index fragment-file pattern |
| ADR-0262 | bisect-model-quality cache check uses logical comparison for parquet |
| ADR-0263 | OSSF Scorecard policy and remediation cadence |
| ADR-0270 | libFuzzer scaffold for parser surfaces (OSSF Scorecard remediation) |
| ADR-0311 | libFuzzer harness expansion — fuzz_yuv_input + fuzz_cli_parse |
| ADR-0317 | Path-filter Docker + FFmpeg-integration on doc/Python-only PRs |
| ADR-0331 | Skip CI on draft pull requests |
| ADR-0332 | Agent worktree-drift hard guard |
| ADR-0334 | state.md-touch-check CI gate (ADR-0165 enforcement) |
| ADR-0338 | macOS Vulkan-via-MoltenVK CI lane (advisory) for the Vulkan backend |
| ADR-0341 | paths-ignore filter on heavy CI workflows for doc-only PRs |
| ADR-0347 | Sanitizer matrix — concrete test-set scope per sanitizer |
| ADR-0348 | Globally suppress CodeQL cpp/poorly-documented-function |
| ADR-0355 | Symphony-inspired agent-dispatch infrastructure |
| ADR-0359 | 0359-arc-runners-pilot.md |
| ADR-0363 | Mend Renovate replaces Dependabot as the dependency-update bot |
| ADR-0384 | Switch shfmt pre-commit hook from binary download to Go-source build |
| ADR-0386 | ADR Number Collision Prevention — Hook + CI Gate + Helper Script |
| ADR-0403 | mkdocs --strict validation policy — actionable carve-outs |
| ADR-0404 | Keep nightly.yml + fuzz.yml red until underlying bugs land |
| ADR-0407 | AdaptiveCpp as a second SYCL toolchain |
| ADR-0409 | Automated CI gate for the ffmpeg-patches surface-sync rule (CLAUDE.md §12 r14) |
| ADR-0435 | PR-body pre-push validation hook |
| ADR-0448 | Active upstream monitoring (no silent "wait" deferrals) |
| ADR-0466 | mkdocs strict-mode pre-push hook |
| ADR-0493 | Test YUV fixtures must be md5-verified, not just present-by-name |
| ADR-0494 | Restore the non-golden Python test suite to green |
| ADR-0515 | Portable temp-path setup for test_public_api_score on MinGW64 |
| ADR-0521 | MSVC portability gating — vif_avx512.c noinline/noclone + yuv_input.c S_ISREG/fstat |
| ADR-0529 | Replace /dev/dri/by-path bind with whole /dev/dri bind in dev container |
| ADR-0535 | Atomic ADR Number Allocator with Cross-Branch Claim |
| ADR-0565 | Continuous Feature-Mix Evaluation Pipeline (predictor-bench) |
| ADR-0569 | SDK / Tool Version Bumps — 2026-05-18 |
| ADR-0573 | Dev-mcp container — ubuntu:26.04 + CUDA 13.2 + hipcc + ocloc |
| ADR-0575 | Fix yuv_input.c stat compat — include-order and _MSC_VER guard |
| ADR-0576 | ffmpeg-patches n8.1.1 full-feature-exposure sync |
| ADR-0599 | Cross-Backend Parity Audit — Full Extractor Matrix (2026-05-18) |
| ADR-0603 | Ubuntu 26.04 (Resolute Raccoon) fallout fixes — CUDA 13.2, Python 3.14, apt renames |
| ADR-0621 | Scaffold Audit P3 — six cleanup items + state drift |
| ADR-0623 | Scaffold audit P2 — half-finished implementation fixes |
| ADR-0626 | SSH-into-runner debug session on macOS CI failure via tmate |
| ADR-0628 | Remote-aware ADR number allocator — cross-worktree collision prevention |
| ADR-0637 | Fix 5 master CI failures — MCP smoke syntax, coverage floor, and job timeouts |
| ADR-0662 | Vulkan Motion Lavapipe Parity |
| ADR-0664 | Install Windows CUDA directly in CI |
| ADR-0679 | CI Draft Auto-Merge Gate |
| ADR-0684 | Pre-rebase worktree-drift guard |
| ADR-0686 | VMAFX Rebrand and Aggressive Modernization — Umbrella ADR |
| ADR-0689 | VMAFX CI Matrix Deduplication |
| ADR-0691 | VMAFX Phase 1C — Drop Legacy Build Paths |
| ADR-0694 | Tighten clang-tidy enforcement + confirm sanitizers as required CI gates |
| ADR-0698 | VMAFX Production Dockerfile — Multi-Arch, Image Signing, SBOM |
| ADR-0710 | VMAFX CI Slim-Down v2 — One Build per OS + State-of-the-Art Sanitizers |
| ADR-0728 | Sunset Legacy Native Build Modes — Phase 4b.9 Follow-On |
| ADR-0738 | Bump local CUDA toolkit pin to 13.3 + R610 minimum driver (partial — CI deferred) |
| ADR-0780 | NOLINT Cluster Refactor — Slab Allocator, SYCL Stride, ADM Band-Size |
| ADR-0783 | Kubernetes end-to-end integration test harness — kind + kuttl |
| ADR-0792 | Env-var overrides for hardcoded YUV and testdata paths |
| ADR-0793 | Nightly Workflow Audit — TSan, Artifact Retention, Python Version |
| ADR-0802 | CI Runner Image Standardization — Pin ubuntu-latest to ubuntu-24.04 |
| ADR-0811 | Security hardening — CodeQL Go coverage + codeql-config |
| ADR-0812 | Renovate — Go/Cargo grouping, schedule, and concurrent-PR cap |
| ADR-0815 | Distroless Dockerfiles for vmafx-operator and vmafx-node |
| ADR-0819 | PR-time CI gate for dev/Containerfile |
| ADR-0840 | Fix cu_state leak on import failure and gpu_dispatch_env TOCTOU |
| ADR-0866 | Wire markdownlint-cli2 into make lint + pre-commit + CI |
| ADR-0867 | Tombstone: run the semgrep-local pre-commit hook serially |
| ADR-0873 | ARM64 NEON bit-exactness audit — -ffp-contract=off carve-out scope |
| ADR-0875 | GitHub Actions hardening audit (2026-05-30) |
| ADR-0878 | Trivy container scan baseline — production images run as non-root |
| ADR-0881 | Coverage-overrides audit — tighten template coverage floor |
| ADR-0882 | Fuzz target audit — JSON model + DNN sidecar harness expansion |
| ADR-0888 | Pyright strict audit of fork-local Python packages |
| ADR-0890 | CI concurrency + cost audit follow-up to PR #301 |
| ADR-0892 | Conventional-Commits coverage + Changelog-fragment section hygiene |
| ADR-0893 | Pre-commit config audit — 2026-05-30 |
| ADR-0899 | Bash strict-mode + trap-cleanup sweep across in-tree shell scripts |
| ADR-0902 | Signing and attestation audit — close residual gaps (2026-05-30) |
| ADR-0903 | Wire Codecov upload into the existing Coverage Gate jobs |
| ADR-0904 | Pin cargo-machete ignore entries for bindgen / cbindgen build dependencies |
| ADR-0905 | .gitignore + .github/workflows/ staleness audit (2026-05-30) |
| ADR-0907 | Wall-clock perf regression gate over the multi-resolution baseline |
| ADR-0908 | Slow-test audit (2026-05-30) — no >30 s tests found; install slow marker as a future gate |
| ADR-0914 | Unified Python test orchestrator (nox at repo root) |
| ADR-0915 | Enable clang-tidy modernize-* family with curated opt-outs |
| ADR-0917 | cargo-deny supply-chain policy enforcement |
| ADR-0918 | LLVM IR diff harness for bit-exact SIMD paths |
| ADR-0922 | Aggressive coverage ratchet + per-PR coverage-delta gate |
| ADR-0923 | Adopt BuildKit cache mounts and ccache across the container build matrix |
| ADR-0924 | Native bash pre-commit hook as opt-in alternative to the pre-commit framework |
| ADR-0938 | Feature-extractor coverage round 2 — seven CPU-side test executables |
| ADR-0951 | GitHub Actions custom-action and reusable-workflow audit |
| ADR-0953 | Doxygen public-API build is warning-clean |
| ADR-0968 | CI scripts — rebrand-proof assertion-density grep + tempfile EXIT trap in changelog concat (Round 26 audit D.1 + D.2) |
| ADR-0973 | Master CI fixes — Metal MS-SSIM fixture dim + ssimulacra2 icpx XYB bit-exactness |
| ADR-0980 | Markdown-lint full-ruleset discharge — content fixes + per-file scoped disables |
| ADR-0983 | gosec sweep — fix all findings + add CI gate |
| ADR-0985 | SYCL parity divergence investigation — float_ssim + ssimulacra2 on Arc A380 |
| ADR-0986 | Add PR trigger to docs.yml CI workflow |
| ADR-0994 | Fix Coverage Gate build break — integer_motion.c compile error |
| ADR-0995 | Shorten CI workflow and job display names |
| ADR-0996 | eBPF FUSE bypass for rclone zero-copy path in vmafx-node |
| ADR-0999 | Guard <stdatomic.h> includes in C++ translation units (GCC 14 + Clang-18 fix) |
| ADR-1000 | Tech-stack badges in README and Go/Rust version pin consistency |
| ADR-1005 | Perf Gate Advisory Mode and Baseline Refresh Documentation |
| ADR-1035 | CI workflow concurrency guards and job timeouts |
| ADR-1041 | Fix CI RED — Go metal option type + Rust AVX-512 test guard |
| ADR-1042 | Containerfile hardening — non-root USER + build-time DEBIAN_FRONTEND |
| ADR-1056 | Use /std:c++latest on MSVC instead of cpp_std=c++23 |
| ADR-1066 | Regression tests for the sequential-realloc double-free in libsvm |
| ADR-1079 | TSan-eligible thread-safety test for threaded_extract_batch_func |
| ADR-1080 | UBSan enum-invalid-value fixes in vmaf_log and vmaf_option_set |
| ADR-1086 | CI Workflow Least-Privilege Permissions Audit |
| ADR-1093 | Disable two recurring-failure tests via should_fail while root cause is under investigation |
| ADR-1101 | Change vmaf container user GID/UID from 1000 to 2000 |
| ADR-1123 | Raise the Required-Checks-Aggregator deadline to 240 minutes and batch Docker digest updates |
| ADR-1126 | Retire the standalone isort hook; ruff's I rules own import sorting |
| ADR-1128 | Make changelog fragments own release cuts |
| ADR-1129 | Align release containers with the published tag and runtime ABI |
| ADR-1134 | Build vmafx-ort-runner in-tree as a cgo shim over libvmaf's DNN session API |
| ADR-1135 | CI twin-drift + stale-source-reference gate |
| ADR-1138 | C translation units keep NULL; modernize-use-nullptr is scoped to C++ |
| ADR-1140 | Route required CI work by measured impact instead of pre-declared path filters |
| ADR-1142 | Whole-codebase standards; lint debt only ratchets down |
| ADR-1143 | CUDA and Intel SYCL Backend Gap Closure |
| ADR-1146 | SPEED and CAMBI Feature Rework to Fork Standards (Bit-Exact) |
| ADR-1151 | Cut the fork's first release as v1.0.0 on a fresh number line |
| ADR-1152 | Exempt Dependency-Only Bot PRs from Documentation Gates |
| ADR-1153 | Resolution of Dead .c/.cpp Twin Sides (model.cpp, test_dict.c, test_feature.c) |
| ADR-1171 | release-please credential gate warns on push, errors on dispatch |
| ADR-1177 | Containerised self-hosted GitHub Actions runner for Intel Arc SYCL parity CI |
| ADR-1178 | Dev container image publication and release artifact container enforcement |
| ADR-1195 | Record and verify which source revision the dev container was built from |
| ADR-1198 | An unknown changelog.d/ subdirectory fails the run instead of warning |
| ADR-1200 | The dev container falls back to the GitHub mirror for nv-codec-headers |
| ADR-1201 | Cut release candidates before the final 1.0.0 |
| ADR-1206 | Every CUDA parity test also runs against a second, larger fixture |
| ADR-1207 | A test gates every feature's score against the host instruction set |
| ADR-1222 | In-code suppressions do not close code-scanning alerts; scope the scan instead |
| ADR-1223 | The CUDA backend requires compute capability 8.0 (Ampere), and CI standardises on CUDA 13.3.1 |
| ADR-1225 | Migrate the HIP backend to ROCm 10.0.0, installed from digest-pinned container images |
| ADR-1227 | Workflow display names are short labels; the axis list lives in the file |
| ADR-1230 | The CI gcc moves forward with clang and meson, and the ratchet records it |
| ADR-1231 | Container bases and toolchain versions come from one config file |
| ADR-1233 | GitHub generates the release body; CHANGELOG.md keeps an index |
| ADR-1234 | The local gate builds with every compiler CI does |
| ADR-1236 | Single-source package versions and unify Python dependencies |
| ADR-1238 | Require the Go security and test job through impact routing |
| ADR-1240 | Maintain the FFmpeg patch stack against stable releases |
| ADR-1241 | Keep Git hooks independent of installer worktrees |
| ADR-1242 | Require source-owned ADR metadata freshness |
| ADR-1243 | Allow measured scoped tightening of the lint baseline |
| ADR-1244 | Guard merge-train ownership and exact-head validation |
| ADR-1245 | Analyze configured Cppcheck paths exhaustively |
| ADR-1246 | Model verified public functions as Cppcheck entrypoints |
| ADR-1247 | Bind Scorecard gates to their measured source and scope |
| ADR-1248 | Enforce repository security through public rulesets |
| ADR-1249 | Adopt praetor governance, with lefthook owning the git hooks |
| ADR-1251 | Renovate opens automerge-eligible and security bumps ready for review |
| ADR-1252 | Declare the single maintainer's bypass actor |
| ADR-1254 | Wide vector register pressure is a Win64 correctness constraint, not a performance one |
| ADR-1258 | Keep the fork 64-bit only; retire the resurrected i686 lane |
| ADR-1259 | Record the CI build matrix as it actually runs |
| ADR-1260 | Windows on ARM64 CPU build-and-test lane |
| ADR-1261 | The local type-check hook fails on findings a branch introduces, not on ones it inherits |
| ADR-1265 | The clang-tidy header filter matches absolute paths, so headers count |
| ADR-1270 | Bound repository subprocess execution behind one validated API |
| ADR-1271 | Pass NEO GitHub credentials through optional BuildKit secrets |
| ADR-1274 | Make HISS-21 claims replayable and platform-gated |
| ADR-1276 | Re-pin the Pelorus mirror for released parser safety fixes |
| ADR-1277 | Separate private state, corpora, and tracked evidence |
| ADR-1282 | mypy's python_version follows requires-python |
| ADR-1283 | The whole-tree clang-tidy ratchet gets an arm64 cross lane |
| ADR-1284 | Gate merges on the work they would remove from the target |
| ADR-1285 | CUDA is a coordinated pin — group it in Renovate, gate the rest |
| ADR-1286 | A cited lint suppression is retired only by a refactor that satisfies the invariant it cites |
| ADR-1289 | The three SSIMULACRA2 HIP host functions may be split; their no-split citations are withdrawn |
| ADR-1290 | The tidy ratchet owns its per-lane compilation database |
| ADR-1291 | A reversal an accepted ADR mandates is declared in the tree, not in the PR body |
| ADR-1294 | Scope the docs build's concurrency group to its ref, not to Pages |
| ADR-1297 | Every check that reports on a pull request is a required context |
| ADR-1298 | Scope the local HISS audit's touched-file rule to what the committer wrote |
| ADR-1300 | Install CUDA on every CI leg from NVIDIA's own distribution |
| ADR-1305 | Hash-locked Python dependency installs and OpenSSF supply-chain hardening |
| ADR-1306 | Replace nvidia/cuda base images with digest-pinned Ubuntu and version-locked apt installation |
| ADR-1310 | Reuse the merge-base mypy gate in required CI |
| ADR-1311 | Bind source ADR citations to exact decisions and governed retirements |
| ADR-1314 | Keep unpinned Semgrep registry results advisory |
| ADR-1315 | Drive libvmaf public C API Doxygen warnings to zero and fail closed |
| ADR-1317 | Isolate Netflix golden gate build profile to eliminate floating-point drift from compiler variations |
| ADR-1319 | Admit self-hosted GPU jobs through a live fail-closed probe |
| ADR-1321 | Pre-RC1 CI flake remediation and contract alignment |
| ADR-1333 | Meson test environment secret sanitization |
| ADR-1335 | Bind research-digest debt to the trusted merge base |
| ADR-1338 | Require a clean Go fix modernization gate |
| ADR-1343 | Statically check that every dev-container stage copies the files it reads |
| ADR-1344 | Leave [project].version out of the Python lock input fingerprint |
| ADR-1345 | Exempt release changelog archives from the large-file gate |
| ADR-1346 | Build native release artifacts on a hosted runner inside the build-deps container stage |
| ADR-1347 | Recover a release's container images with the default branch's build recipe |
| ADR-1348 | Number release candidates with release-please's prerelease versioning |
| ADR-1349 | Build the vmafx-node image per architecture on native runners |
| ADR-1350 | Include the FFmpeg patch series in the image recovery recipe |
| ADR-1351 | Move the praetor engine pin: re-record engine-measured debt and adopt its documentation gate |
| ADR-1354 | Build the native Linux bundle on the Debian 13 release track |
| ADR-1356 | Release provenance from GitHub build-provenance attestations, not slsa-github-generator |
| ADR-1360 | Generate SYCL AOT images at compile time and fail the build when they are missing |
| ADR-1361 | Scale the psnr_hvs cross-backend tolerance with the CPU's float-sum length |
| ADR-1364 | Register the SYCL device images of a Windows MSVC build through one explicit device link |
| ADR-1387 | Migrate Windows MinGW CI leg from deprecated MINGW64 to UCRT64 |
| ADR-1388 | Exempt PAT-mode release PRs from authoring-discipline gates via verified release-only diff |
| ADR-1389 | Run CodeQL (Actions) unconditionally on every pull request for universal SAST coverage |
| ADR-1397 | GPU psnr_hvs twins reproduce the CPU's running float sum bit for bit |
| ADR-1401 | psnr_hvs_sycl and psnr_hvs_hip return the CPU's scores bit for bit; the fp64-free masking threshold is an integer square root |
| ADR-1409 | float_motion_cuda adds its SAD in the CPU's order and returns the CPU's scores bit for bit |
| ADR-1411 | float_motion_sycl adds its SAD in the CPU's order and returns the CPU's scores bit for bit |
| ADR-1412 | float_vif_cuda computes the CPU's arithmetic, adds in the CPU's order and returns its scores bit for bit |
| ADR-1414 | float_ms_ssim_sycl computes the CPU's arithmetic and returns its per-scale means bit for bit |
| ADR-1416 | adm_cuda takes its CSF weights, its rounding shifts and its score conclusion from the CPU's routines and folds the denominator once per row |
| ADR-1418 | Motion parity cells compare what every twin emits; a missing metric is a cell error |
| ADR-1419 | float_motion_hip stores its differences transposed and adds each row in the CPU's order |
| ADR-1420 | float_adm_cuda computes the CPU's arithmetic, divides through the host's reciprocal estimate and returns the CPU's scores bit for bit |
| ADR-1422 | float_vif_sycl computes the CPU's arithmetic without an fp64 type and returns its scores bit for bit |
| ADR-1423 | adm_hip takes its weights, shifts and score conclusion from the CPU, folds the denominator once per row and clears its accumulators after the upload |
| ADR-1424 | integer_ssim_cuda adds its terms in the CPU's raster order, on the host, and returns the CPU's score bit for bit |
| ADR-1426 | ciede_cuda computes the CPU's arithmetic and adds in the CPU's order; what remains is the math library, and the gate bounds it |
| ADR-1428 | Exact GPU twins are declared by one fragment file each, not by a shared literal |
| ADR-1430 | speed_chroma_cuda keeps its correctly rounded log2; the gate bounds what glibc's log2f adds |
| ADR-1432 | vif_sycl computes the gain terms of the integer VIF in exact integer arithmetic and returns the CPU's scores bit for bit |
| ADR-1433 | ssimulacra2_cuda returns the sums of the CPU's loops, formed on the device from integer increments per binade |
| ADR-1434 | float_adm_sycl computes the CPU's arithmetic without an fp64 type, adds in the CPU's order and returns the CPU's scores bit for bit |
| ADR-1435 | vif_hip reads the CPU's log2 table instead of evaluating log2f() on the device, and returns the CPU's scores bit for bit |
| ADR-1436 | ciede_sycl runs the CPU's statements on fp32 pairs and adds in the CPU's order; it lands where the CUDA twin does, 1.4e-11 from the CPU |
| ADR-1437 | motion_hip, motion_v2_hip, psnr_hip, integer_ms_ssim_hip and cambi_hip are declared exact twins; float_psnr_hip and float_moment_hip are not |
| ADR-1438 | integer_ssim_hip adds its terms in the CPU's raster order at every frame size and returns the CPU's score bit for bit |
| ADR-1440 | float_psnr_hip adds its squared differences as integers and returns the CPU's score bit for bit |
| ADR-1441 | float_ssim_hip forms its window sums through the arithmetic float_ms_ssim_hip shares with the CPU and returns the CPU's score bit for bit |
| ADR-1443 | integer_ssim_sycl computes the CPU's fp64 term in 64-bit integers and adds in the CPU's order; it returns the CPU's ssim bit for bit |
| ADR-1444 | float_vif_hip runs the arithmetic of the CUDA twin from one shared header and returns the CPU's scores bit for bit |
| ADR-1445 | ssimulacra2_hip evaluates the CPU's fp64 terms and returns the sums of the CPU's loops |
| ADR-1446 | ssimulacra2_sycl forms the CPU's fp64 terms in 64-bit integers and returns the sums of the CPU's loops; it returns the CPU's score bit for bit |
| ADR-1447 | float_moment_hip adds the float squares the CPU adds, and is bit-identical while the CPU's own sum is exact |
| ADR-1448 | ciede_hip runs the CPU's arithmetic in fp32 pairs, from the header the SYCL twin runs; what remains is glibc's powf and the last bits of a pair |
| ADR-1449 | float_moment_sycl adds the float squares the CPU adds, and is bit-identical while the CPU's own sum is exact |
| ADR-1450 | float_psnr_sycl adds its squared differences as integers, and is bit-identical to the CPU |
| ADR-1451 | adm_sycl, motion_sycl, motion_v2_sycl, psnr_sycl, float_ssim_sycl and cambi_sycl are declared exact twins; speed_chroma_sycl is not |
| ADR-1452 | the gate bounds speed_chroma_hip against the CPU by what glibc's log2f adds, as it does for the CUDA twin |
| ADR-1453 | float_moment_cuda adds the float squares the CPU adds, and is bit-identical while the CPU's own sum is exact |
| ADR-1454 | A large subtree AGENTS.md is a generated index over one page per topic |
| ADR-1455 | float_psnr_cuda adds its squared differences as integers, and is bit-identical to the CPU |
| ADR-1456 | vif_cuda keeps its device log2f(), proven equal to the CPU's log2 table on every entry, and is declared an exact twin |
| ADR-1457 | motion_cuda, motion_v2_cuda, psnr_cuda, float_ssim_cuda, float_ms_ssim_cuda and cambi_cuda are declared exact twins |
| ADR-1458 | float_adm_hip runs the CPU's arithmetic from the header the CUDA twin runs and returns the CPU's scores bit for bit |
| ADR-1460 | speed_temporal becomes a parity-gate feature with a derived bound, and every registered twin of a gated backend has to be a gate cell |
| ADR-1462 | vif_cuda reads the CPU's log2 table instead of evaluating log2f() on the device |
| ADR-1468 | A SYCL kernel requires only a sub-group size every default AOT target accepts (16 or 32); the six kernels that required 8 move to 16 |
| ADR-1471 | The clang-tidy lanes are measured in the dev container, with the device toolchains |
| ADR-1474 | A fork-created header that replays upstream arithmetic is EUPL-1.2 AND the licences of exactly that code, and the relicensing check becomes a required CI job |
| ADR-1477 | SpEED evaluates Netflix's fp64 expressions again, and its GPU twins form the entropies and the score on the host with the same statements, so every twin returns the CPU's scores bit for bit on any C library |
| ADR-1487 | code inherited from Netflix/vmaf evaluates as Netflix's source does, a difference needs an ADR, and a guard compares every emitted value against the recorded upstream head |
| ADR-1492 | Tester image with one report command, hardware reports as tracked files |
| ADR-1493 | macOS tester bundle, an exception to container-only publishing |
| ADR-1496 | The macOS tester bundle runs the parity gate's Metal cells and reports per state row what it measured |
| ADR-1503 | Every published tester artifact carries its licence texts, an attested SPDX SBOM and the source its copyleft parts require, and a gate refuses a file with no recorded licence |
| ADR-1504 | Decline praetor's branch ruleset; the policy file is the only declaration |
| ADR-1505 | An Intel GPU tester image with a backend-neutral GPU section in the report |
| ADR-1506 | Move the praetor pin to 0af07a733e65 to drop the braces chain from the documentation gate's lock |
| ADR-1509 | An NVIDIA GPU tester image that ships no NVIDIA file and measures every CUDA twin on a tester's GPU |
| ADR-1511 | An AMD GPU tester image that ships only the ROCm runtime files the HIP build loads, with the source of its LGPL parts |
| ADR-1513 | The production images, release assets and Python packages follow the tester licensing rules, checked by the same tool |
| ADR-1515 | A native Windows tester zip for x64 and Arm64, built by the hosted runners with MSVC and a static C runtime |
| ADR-1516 | A Windows CUDA tester zip that ships no NVIDIA file and measures every CUDA twin on a tester's Windows PC |
| ADR-1528 | Every test file belongs to a suite that a required check runs |
| ADR-1546 | The registry validator holds tiny-model metadata to the shipped graphs |
| ADR-1560 | A Python package declares the licences of every file its sdist and wheel carry, its compiled extension included |
| ADR-1564 | The dev container is pushed only into a private package, checked before every push |
| ADR-1566 | A Windows SYCL tester zip built with /MD that carries its runtime beside every program and measures every SYCL twin on a tester's Intel GPU |
| ADR-1568 | A test runs once in CI |
| ADR-1591 | Publish every archive and image at the strongest compression its documented consumers open |
| ADR-1594 | zstd image layers with a Docker Engine 23.0 floor, and zopfli for the Windows zips |
| ADR-1595 | Build and run what the push-only and release-only workflows publish, before they publish |
| ADR-1673 | A push to master never cancels the runs of an earlier master commit; the concurrency group carries the SHA there |
| ADR-1686 | a Scorecard master run whose master moved on to a descendant ends cancelled |
| ADR-1687 | Require the pull-request release legs through the aggregator |
| ADR-1699 | The root licence files state ADR-1250's terms, and every package manifest declares the licences of the files it ships |
| ADR-1700 | The tester selectors follow their own paths, not the full-mode fallback |
| ADR-1701 | Build and test the tester image every night on master |
| ADR-1762 | Every translation unit is read by a clang-tidy lane or excepted by name |
| ADR-1898 | A resumable stage runner and a mini retrain that exercises the retrain tooling in CI |
| ADR-1899 | govulncheck at symbol level, OpenVEX for what is not called |
| ADR-2012 | Lefthook and the pre-commit framework on Windows hosts |
| ADR-2126 | Declare the single-maintainer gaps of OpenSSF Scorecard's Code-Review and Branch-Protection checks as exceptions |
| ADR-2153 | Move the praetor pin to 04cc813ff054 for the documentation lint budget and the tidy coverage gate |
| ADR-2169 | CI runs the tier a pull request owes, not the whole suite on every push |
| ADR-2170 | A CI leg that prints no warnings turns them into errors, one leg at a time |
| ADR-2171 | A weekly research radar over public video-quality sources |
| ADR-2197 | Generated changelog, ADR index and rebase notes are rendered when pull requests land |
| ADR-2198 | A tester leg builds where its inputs change, and no release is cut on a leg nobody saw green |
| ADR-2199 | actionlint runs under a deadline and fails loudly when it hangs |
| ADR-2200 | The live source ADR-citation bindings are derived from the tree, not recorded |
| ADR-2321 | Move the praetor pin to afb739ed81f3 and meet its nested-context, supply-chain and harness checks |
| ADR-2440 | Move the praetor pin to 7458a220e1c9 and drop the exceptions for the managed workflows |
| ADR-2462 | Every commit carries a DCO sign-off, checked on pull requests |
| ADR-2646 | POSIX-only build parts stay off Windows, and preflight refuses an unguarded POSIX header |
| ADR-2783 | The patched FFmpeg is built with MSVC against vmaf.lib in CI |
| ADR-2784 | Move the praetor pin to 3a766f2d56ad, take its REUSE workflow and declare the build-warnings lanes it cannot read |
| ADR-2828 | Every CI build lane spells warnings as errors where praetor's build-warnings gate reads it |
| ADR-3061 | Move the praetor pin to d141862c430b so the Go API gate builds its checker against golang.org/x/tools v0.51.0 |