Skip to content

feat(verify): gate new-device candidates before device_catalog - #123

Merged
Seungpyo1007 merged 1 commit into
mainfrom
feat/verify-catalog-candidates
Oct 6, 2026
Merged

Seungpyo1007 merged 1 commit into
mainfrom
feat/verify-catalog-candidates

Conversation

@Seungpyo1007

Copy link
Copy Markdown
Member

Adds python -m app.verify candidates. It is a staged accept/hold gate for new-device rows, here the Google Play hold queue from ADR-016, applied before they become device_catalog entries.

Stages:

  • junk
    • vendor list, non-mobile Console form factor, TV/panel SoCs and 4K screens, TV/box/POS names and codenames;
    • vendor mix: a brand whose Console rows are mostly non-mobile can't vouch for its rows that have no Console data.
  • seller
    • ODM/distributor list;
    • brand-level share of rows that name another brand;
    • a row naming a different brand is held.
    • A row naming exactly one sibling brand is refiled (TCL under alcatel).
  • label: market suffix (the clean name is taken from models when present), codename echo, non-Latin script, bare model codes for major brands, internal strings.
  • dup
    • exact id across all brands, including variant.model_numbers;
    • region-normalised id;
    • name tokens inside one of the brand's slugs;
    • major brands only: numeric stem, and rows with sdk ≤ 25, which map to pre-id imports.
  • batch: duplicate model numbers within the input.

Nothing is dropped; held rows keep their reasons for review. Unit tests are in tests/verify/test_catalog_candidates.py.

Refs #98

…alog

python -m app.verify candidates <rows.jsonl> --out <decisions.jsonl> runs Play
new-device rows through staged checks (junk, seller, label, dup, in-batch) against
the dataset and marks each accept or hold with reasons. Brand-level shares
(non-mobile Console rows, rows naming another brand) catch TV vendors and ODMs that
per-row rules miss; ids are matched across all brands including variant.model_numbers.

Refs #98
@Seungpyo1007
Seungpyo1007 merged commit 864053d into main Oct 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant