Skip to content

docs(adr): set the status of 78 Proposed ADRs from what master implements - #2070

Merged
lusoris merged 3 commits into
masterfrom
docs/adr-status-sweep-2026-10-05
Oct 5, 2026
Merged

lusoris merged 3 commits into
masterfrom
docs/adr-status-sweep-2026-10-05

Conversation

@lusoris

@lusoris lusoris commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Summary

96 ADR files carried Status: Proposed on master (95 after excluding the template; ADR-0237 and ADR-0296 are already phase-scoped Accepted). Each was judged from its implementing commits and the files it names on origin/master, never from its own wording. 78 change status (77 Accepted, 1 Superseded; ADR-1199 and ADR-1250 were accepted by a concurrent PR while this one was open and keep master's wording) and 15 stay Proposed. Only status lines, index rows and a dated ### Status update 2026-10-05 note at the end of each file changed; no decision text was touched. Precedent: #2050 (ADR-0931).

Also adds the failing gate scripts/ci/check-adr-status-drift.py with expiring exceptions and a test.

Changed

ADR Status Evidence PR / commit
0454 Proposed -> Accepted #1160, 41c1f5045
0551 Proposed -> Accepted #1334, 6fd36ee6d
0612 Proposed -> Accepted #1414, 16503c033
0615 Proposed -> Accepted 026f02f4f
0616 Proposed -> Accepted #1426, 0e53ed697
0640 Proposed -> Accepted #1438, a50385102
0643 Proposed -> Accepted 8ac880fe4
0648 Proposed -> Accepted #1448, ac35c9817
0649 Proposed -> Accepted #1448, ac35c9817
0653 Proposed -> Accepted #1451, d12064436
0665 Proposed -> Accepted #1487, 3516f75ee
0666 Proposed -> Accepted #1489, fe2169230
0668 Proposed -> Accepted #1491, 242305e67
0669 Proposed -> Accepted #1492, 74e1fe772
0670 Proposed -> Accepted #1493, becf95d16
0673 Proposed -> Accepted #1496, caefbe3ff
0698 Proposed -> Accepted #1572, 78ecafe11
0699 Proposed -> Accepted #1570, 4b5f93f0c
0701 Proposed -> Accepted #1583, 1143a54de
0702 Proposed -> Accepted #14, #16, e3f222baa, bb9848c0a
0703 Proposed -> Accepted #15, 79c66591b
0713 Proposed -> Accepted #32, ec214f537
0779 Proposed -> Accepted #137, 1f48be4e2
0845 Proposed -> Accepted #217, f4879cc1a
0928 Proposed -> Accepted (Phase 1) #886, d1039ac2c
0996 Proposed -> Accepted #137, #1993, 1f48be4e2, 8cf6d61d4
1122 Proposed -> Accepted #1082, #1261, 15b721a4e
1195 Proposed -> Accepted #1337, 9cec679a4
1197 Proposed -> Accepted #1343, ee43938f1
1198 Proposed -> Accepted #1347, fb7169b38
1200 Proposed -> Accepted #1348, defb879a0
1201 Proposed -> Accepted #1353, #1213, c1680c02f, 34b92fc9a
1203 Proposed -> Accepted #1360, 8aee0982f
1204 Proposed -> Accepted #1363, 43aabd684
1205 Proposed -> Accepted #1363, 43aabd684, acb8c344f
1206 Proposed -> Accepted #1363, 43aabd684, eab3e164b
1207 Proposed -> Accepted 5b164cb79
1208 Proposed -> Accepted 5b164cb79, 4d2f7c366
1209 Proposed -> Accepted 53e417476
1210 Proposed -> Accepted b4ae551a3
1211 Proposed -> Accepted #1701, 56b355a2b, 6283ee500
1212 Proposed -> Accepted #1425, 8276f2b0d, 5b523b24e
1213 Proposed -> Accepted #1425, 8276f2b0d, 5b523b24e
1214 Proposed -> Accepted #1373, #1425, 64ea351be, 8d0cdd7c4
1215 Proposed -> Accepted #1425, 9170dfb04, 0d1f9303c
1216 Proposed -> Accepted #1375, 0eb385574
1217 Proposed -> Accepted #1376, ca8a39ea4
1218 Proposed -> Accepted #1377, ff49e6fe8
1219 Proposed -> Accepted #1425, 7c29e70b2
1220 Proposed -> Accepted #1425, 36ebf66b5
1221 Proposed -> Accepted #1425, b3e95901c
1222 Proposed -> Accepted #1425, 5774a1ba6
1223 Proposed -> Accepted #1384, 925dae926
1224 Proposed -> Accepted #1425, 7a0d835c8
1249 Proposed -> Accepted #1454, #1482, 5730fca22, 663b1430c
1260 Proposed -> Accepted #1492, a9a45f5e3
1261 Proposed -> Accepted #1491, d0d64dfd5, d68fa5cd7
1262 Proposed -> Accepted #1506, 11a47f39b
1263 Proposed -> Accepted #1506, 11a47f39b
1264 Proposed -> Accepted #1506, 11a47f39b
1265 Proposed -> Accepted #1504, 8845ac2eb
1271 Proposed -> Accepted #1468, fec6ec9ac
1273 Proposed -> Accepted #1516, 7f1005915
1274 Proposed -> Accepted #1518, 6475fa9ea
1276 Proposed -> Accepted #1515, 6c8e7b8ea
1278 Proposed -> Accepted #1518, 6475fa9ea
1282 Proposed -> Accepted #1518, 6475fa9ea
1283 Proposed -> Accepted #1518, 6475fa9ea
1289 Proposed -> Superseded by ADR-1390 #1518, 6475fa9ea
1292 Proposed -> Accepted #1518, 6475fa9ea
1293 Proposed -> Accepted #1518, 6475fa9ea
1294 Proposed -> Accepted #1518, 6475fa9ea
1295 Proposed -> Accepted #1518, 6475fa9ea
1297 Proposed -> Accepted #1518, 6475fa9ea
1298 Proposed -> Accepted #1518, 6475fa9ea
1304 Proposed -> Accepted #1538, b71bfc563
1308 Proposed -> Accepted #1561, dd51d00db
1310 Proposed -> Accepted #1561, dd51d00db

Notes: ADR-0928 is Accepted for Phase 1 only (the SONAME bump is deferred by the ADR). ADR-1122 is Accepted for the model port; its default-model clause was reversed by ADR-1169 (noted in the update). ADR-1289 is Superseded by ADR-1390 by code rewrite (ADR-1390 carries no explicit Supersedes line; judgement call, easy to revert). ADR-0779 and ADR-1222 keep their parenthetical partial-supersession text. Commits that cite ADR-0779 for the duplicate ADR-0996 are listed under ADR-0996.

Left Proposed

ADR Why
0401 Only the ADR itself exists; no enable_wasm option is in core/meson_options.txt and no WASM build or experiment landed.
0459 Only the ADR and the dataset licence audit landed (PR 849); the HDRSDR-VQA adapter script, panel_class column, panel predictor and --panel flag do not exist.
0565 Only the design commit landed; no predictor-bench subcommand, grid YAML or DuckDB store exists under tools/ or ai/scripts.
0613 Only the roadmap plan landed; dynamic_optimizer.py does not exist in tools/vmaf-tune/src/vmaftune.
0614 Only the roadmap plan landed; rendition_picker.py and the per-shot ladder-rung ShotRecommendation extension do not exist.
0617 Only the roadmap plan landed; TitleQualityConstraints and tune_per_shot_with_constraints do not exist in per_shot.py.
0618 Only the roadmap plan landed; classify.py and the ContentTags classifier do not exist in tools/vmaf-tune/src/vmaftune.
0686 This umbrella is only partly realised and parts are reversed: the Vulkan backend named in the auto-detect order was removed by ADR-0726, the version scheme moved to plain SemVer under ADR-1127, and the C23 and sanitizer-gate items have no single shipped implementation. It is not a cleanly accepted decision.
0709 This umbrella lists eleven components, and item 10 (dropping the stable libvmaf C ABI) was not adopted: the repo harness keeps the C ABI additive and unchanged, and ADR-0767 only scopes the break. The Go controller, node and operator binaries exist, but the decision as a whole is not implemented as written.
0767 The ADR is a design-approval document and states that implementation is deferred; PR #561 only added the ADR. The libvmaf.so.4 ABI break it describes was not made.
0780 Only the audit landed. core/src/feature/gpu_slab.h from PR B does not exist, and no commit on master implements the three NOLINT-reduction PRs the ADR plans.
0781 The standalone trainer building blocks shipped in PR #178, but the ADR itself states that the end-to-end producer, deployment and checkpoint-consumption path is not implemented and that it remains Proposed.
0783 PR #152 added the harness, but test/e2e/kuttl-tests now holds only 01-chart-cpu-score rather than the five decided cases, and the operator, heartbeat, rclone and sidecar-trainer cases are absent.
0907 scripts/perf/check-regression.py and the baseline exist, but no workflow on master invokes the gate, so the decided CI wiring is gone. The gate is a script only.
1202 PR #1360 shipped the singular_out out-parameter and the fixed eight-warp CUDA solve launch, but the code was later reworked into device-resident pipelines with a singular tally in speed_internal.h. The singular_out out-parameter no longer exists in code and survives only in core/src/feature/cuda/AGENTS.d/speed.md, so the decision text no longer matches the tree.

The check

scripts/ci/check-adr-status-drift.py fails when a Proposed ADR is cited in the subject of a feat/fix/perf/refactor/build/ci/test commit older than 14 days, unless an unexpired entry in scripts/ci/adr-status-exceptions.json covers it (ADR number, file, rule, reason naming the missing part, expiry). It also fails on an expired entry (valid through its date), a stale entry (the ADR no longer drifts), and a malformed or duplicate entry. Maintainer decision 2026-10-05: failing with expiring exceptions. No standards-exception list existed in the repo, so the file follows the exact_twins.d precedent of a declared, checked-in list.

Five exceptions today, all expiring 2027-01-05: ADR-0613 (dynamic_optimizer.py missing), ADR-0781 (end-to-end path not implemented), ADR-0783 (1 of 5 kuttl cases), ADR-0907 (no workflow runs the gate), ADR-1202 (decision text no longer matches the tree). Wired as the always-run pre-commit hook check-adr-status-drift, which the CI lint job (fetch-depth 0) runs.

scripts/ci/tests/test_check_adr_status_drift.py has 12 cases: new drift without exception fails, valid exception passes, expired exception fails (expiry day itself passes), stale, malformed and duplicate entries fail, the repository list is valid, plus the age, docs-commit and number-match cases. Mutations: ignoring expiry fails 1 case, ignoring a missing exception fails 2, dropping the stale check fails 1, counting docs commits fails 1.

Deliverables (ADR-0108)

  • Research digest — no digest needed: status bookkeeping, evidence is in the table above.
  • Decision matrix — no alternatives: only-one-way fix (the README prescribes the status values).
  • AGENTS.md invariant note — no rebase-sensitive invariants.
  • Reproducer / smoke-test command — see below.
  • CHANGELOG fragment — changelog.d/changed/adr-status-sweep-2026-10-05.md.
  • Rebase note — docs/rebase-notes.md entry: no rebase impact: docs only.

Reproducer

python3 scripts/ci/tests/test_check_adr_status_drift.py && python3 scripts/ci/check-adr-status-drift.py   # exit 0; add --today 2027-01-06 for exit 1
scripts/docs/concat-adr-index.sh --check && python3 scripts/ci/check-source-adr-citations.py

State: docs/state.md row T-ADR-STATUS-DRIFT-96-PROPOSED-2026-10-05. No golden assertion touched.

@github-actions github-actions Bot added the type:docs Documentation updates label Oct 5, 2026
@lusoris
lusoris force-pushed the docs/adr-status-sweep-2026-10-05 branch from 3f42df8 to e713f81 Compare October 5, 2026 09:47
@lusoris lusoris changed the title docs(adr): set the status of 80 Proposed ADRs from what master implements docs(adr): set the status of 78 Proposed ADRs from what master implements Oct 5, 2026
…142) (#2078)

* refactor(core): bring the cpu clang-tidy lane to zero findings (ADR-1142)

Cited NOLINT blocks on C headers shared with C++, parenthesised cJSON macro
arguments, string_view copy in isnumeric(), cited nullptr exemptions in
picture_pool.c. cpu baseline 70 to 0.
…er image nightly (ADR-1700, ADR-1701) (#2076)

* ci: run the tester builds on their own inputs only and build the tester image nightly (ADR-1700, ADR-1701)

After ADR-1687 the impact planner's full-mode fallback started the required
Tester Image and Windows Tester Zip builds on about three quarters of all
pull requests (148 and 142 of 200 master commits, against 41 and 10 under the
former path filters). The maintainer decided on 2026-10-05 to narrow them and
to cover the library inputs of the image with a nightly build.

- A selector may declare "own_paths_only": true in .github/ci-impact.json. In
  a full plan with known changed paths it is true only when one of them
  matches its own patterns; with no change list (dispatch, schedule) it stays
  true. Only tester_image and windows_tester_zip declare it; load_config()
  refuses it with inherits or without patterns. On the same 200 commits the
  selectors now pick the former filters' commits exactly.
- Selector inheritance is resolved in topological order instead of by
  recursion, which removes the planner's baselined HISS-01 finding.
- docker-publish-tester.yml builds and tests the amd64 image every night at
  00:29 UTC on master, with no publish and no GPU images, in a concurrency
  group of its own, ending before nightly.yml and the weekly Release Dry Run.
- The master push behaviour of ADR-1687 stays and is documented.

Closes T-TESTER-LEGS-FULL-MODE-FALLBACK-COST-2026-10-05.

* docs: regenerate the indexes and the citation map after rebasing
…ents (#2070)

* docs(adr): set the status of 78 Proposed ADRs from what master implements

Each ADR was judged from its implementing commits and the files it names on master. 77 become Accepted (ADR-0928 scoped to Phase 1), ADR-1289 becomes Superseded by ADR-1390, and 15 stay Proposed with the missing part named in the pull request. Only status lines, index rows and dated status-update notes change.

scripts/ci/check-adr-status-drift.py fails when a Proposed ADR is cited by an implementing commit older than 14 days. A partly shipped ADR stays Proposed through an entry in scripts/ci/adr-status-exceptions.json that names the missing part and expires; expired and stale entries fail. Five entries exist today.
@lusoris
lusoris force-pushed the docs/adr-status-sweep-2026-10-05 branch from e713f81 to b7a40b4 Compare October 5, 2026 10:38
@lusoris
lusoris merged commit b7a40b4 into master Oct 5, 2026
5 of 46 checks passed
@lusoris
lusoris deleted the docs/adr-status-sweep-2026-10-05 branch October 5, 2026 10:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:docs Documentation updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant