Skip to content

Picture contribution with checks #188

Open

Description

@mkerstner

Summary

As a contributor, I want to add or replace a device's picture, through the website or via pull request, with clear rights acknowledgement and automated checks, so that device pages get good product images without exposing OHF or the community to licensing, privacy or abuse problems.

This feature covers everything specific to pictures in the first contribution iteration described in #74. The generic edit mode (#185), the PR channel (#184) and the moderation bot handle the shared parts; this issue defines what is different for images.

Image is one of the five starter fields in the first iteration. It is also the riskiest one: an image can carry third-party copyright, a person's face, a serial number or Wi-Fi password on a sticker, or plainly inappropriate content. The contribution proposal (#135) already treats images differently in moderation: a longer auto-merge window and a positive vote ratio for adding an image, a short window with no opposing votes for removing one. The licensing proposal puts contributed content under CC BY-SA 4.0 (alternative CC BY 4.0), pending legal review in #35.

"Checks" here means both: what the contributor must confirm, and what the system verifies before a picture proposal enters moderation.

Scope

Contribution of a picture

Rights acknowledgement (website channel)

Automated technical checks (both channels)

  • File type (allowed formats to be defined, e.g. JPEG, PNG, WebP), maximum file size and minimum and maximum dimensions
  • Image is decodable and not corrupted; animated images rejected
  • Metadata stripped on ingestion (EXIF including GPS and device identifiers) before the file is stored
  • Duplicate detection against the device's current picture and against open proposals (hash-based), to avoid duplicate work
  • Checks run in the same validation step as other trait changes (PR-based contribution path with the same validation #184), with clear messages when a check fails

Automated content checks (both channels, first iteration kept simple)

  • Basic screening for explicit or clearly inappropriate content before a proposal becomes visible as pending
  • Hypothesis: a lightweight classifier or a hosted moderation API; result only flags, never auto-rejects, so a human vote decides borderline cases

Moderation and lifecycle

  • Picture proposals follow the stricter image merge rule from the proposal: longer auto-merge window, positive vote ratio required for adding or replacing; short window, no opposing votes for removing
  • Pending picture proposals show a thumbnail on the device page so reviewers can judge without opening the PR
  • Easy reporting of a live picture (rights issue, personal data, wrong device) through the reporting flow, with removal following the short-window rule

Storage and delivery

  • Pictures are stored with the trait data per the repository conventions, or in an asset store referenced from the trait file (open question below)
  • Delivered through the website with appropriate resizing and caching; original kept for re-processing

Acceptance criteria

  • A contributor can propose adding, replacing or removing a device picture from edit mode and via PR
  • Submission on the website is blocked until the rights acknowledgement is confirmed; the acknowledgement text comes from a configurable source agreed with the legal track
  • Pictures failing type, size, dimension or integrity checks are rejected before a proposal is created, with a message naming the failing check
  • Stored pictures contain no EXIF or other embedded metadata
  • A picture identical to the current one or to an open proposal is detected and the contributor is told
  • Picture proposals carry the image moderation rule and show a thumbnail as a pending edit on the device page
  • A live picture can be reported from the device page, and removal proposals follow the short-window rule
  • Checks are the same code path for website and PR submissions

Not in scope

Dependencies

Open questions

  • Storage: pictures committed to the data repository (simple, but repository size grows) or an asset store with a reference in the trait file (lighter repository, extra service)? Affects the PR channel conventions
  • Content screening: which service or model, hosting cost, and false-positive handling for product shots that trigger classifiers (e.g. skin-tone-like surfaces, packaging with people)
  • Should manufacturer press images be allowed under "fair use" style reasoning, or only with an explicit compatible licence? Needs legal input
  • Minimum quality bar: do we require a plain background or product-shot style, or accept any clear photo of the device in the first iteration?
  • Attribution display: how the contributor and source are shown next to the picture on the page (CC BY-SA requires attribution)
  • Rate limits for picture submissions per contributor, given the higher review cost

Activity

  1. changed the title [-]Picture upload with rights acknowledgement[/-] [+]Picture contribution with checks[/+] on Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions