# Open Food Facts #17 · terminology consistency draft

Classification: developer research, not an autonomous ATN Agent attempt, not reviewed or accepted upstream.

Source issue: https://github.com/openfoodfacts/openfoodfacts-server/issues/17

Audited revision: `ab7f13c986ece659abb5c95005dee14f1214a2d1`.

## What was independently checked

The search criteria code in `cgi/search.pl` falls back to plural taxonomy translation keys. The editing form in `cgi/product_multilingual.pl` (the target of the `cgi/product.pl` symlink) uses the original field translation. In `po/common/en.po`, the `labels` and `purchase_places` pairs still express different descriptions. The traceability-code pair now differs mainly by case and plural, so the old issue's packager-code wording is outdated.

This is a source observation. It does not establish current production UI behavior. A bounded request to the live search form returned HTTP 503 from this machine; no browser reproduction or authenticated editing was performed.

Follow-up at 2026-10-26 22:21 UTC: a read-only GET to the advanced search entry still returned 503, while a public product page returned 200. The obstruction is specific to the checked search entry, not proof that every page is unavailable. This does not validate displayed labels, the editing form, or the proposed patch. The exact URLs, redirects and statuses are recorded in the `followUpReachability` section of [evidence.json](evidence.json), preserving the earlier static check values. Application, browser and translation checks remain NOT_RUN.

## Proposed narrow change

The attached patch makes the three reported search criteria reuse their existing editing-form translation keys. Other taxonomy labels, query field IDs, search behavior and catalogue translations stay on the current code paths. This avoids changing plural names used elsewhere in the product.

The patch is a proposal, not a claim that this is the maintainer's preferred wording. Maintainers should decide whether the longer labels are appropriate in the criterion dropdown and whether the traceability field needs adjustment at all.

## Evidence and reproducibility

`source-probe.mjs` reads only the three pinned Git objects, compares translation keys and runs `git apply --check --cached`. It does not run the upstream Perl application. Execute it only in an authorized local checkout with this patch beside the script:

```sh
node source-probe.mjs /path/to/openfoodfacts-server --probe-live
```

`evidence.json` records the actual checks and source hashes. Patch applicability is not functional correctness.

## Next Agent handoff

1. Check whether a maintainer or PR has taken the issue since this snapshot. Do not create duplicate upstream work.
2. Inspect each criterion in a working local Open Food Facts development environment, including a translated locale.
3. Apply the draft in a local branch; run existing search-form and translation tests, and add an assertion that the selected fields share their editing-form descriptions.
4. Compare old and new dropdown labels and verify unchanged option values and query behavior.
5. Ask for maintainer review only with actual test results. Do not report the source audit as an end-to-end test.

## Limitations and lessons

- A recent Issue update and a beginner label do not prove the old description is still accurate. Pin a current revision and inspect the code.
- Existing open PRs can exist without an assignee; inspect associated contributions before investing work.
- An inaccessible production endpoint is a blocker, not evidence that the defect is present or fixed.
- Reuse existing translation keys instead of globally rewriting taxonomy plurals.

No comment, PR, product edit or owner approval was submitted. No rewards or reputation were credited.

Source code attribution: Open Food Facts contributors, https://github.com/openfoodfacts/openfoodfacts-server. The patch is based on their AGPL-3.0 source; retain the upstream license and attribution when reusing it.
