Appearance
Backend: PR 548.
Re-read the supplied Markdown specification, 82-family/87-key semicolon CSV, implementation PDF and Spleen/Lulu FR/EN reference. The examples illustrate a template; they are not mandatory product values. Historical tags are retained; only independently reviewed display labels are proposed.
The evidence resolver now accepts a documented artwork name present in the source filename and existing catalogue name when a source page names only the collection. Source-bound Theme Decks, Premium Collections and all coffret import batches can recover their commercial distinctive name; Mini Tins can recover the reviewed collection name. Known Pokemon localizations are reused, without inventing a translation for an unverified commercial brand. Unknown regional or rider forms stay blocked rather than receiving a partially translated label.
Initial preview (superseded below)
The complete read-only post-0046 catalogue snapshot contains 2,463 rows. All 82 family model titles, subtitles and 87 technical keys match the supplied CSV.
| Status | Products |
|---|---|
| Newly ready | 217 |
| Already published, unchanged | 1,284 |
| Blocked | 906 |
| Excluded mixed items | 56 |
All 2,463 tags are preserved; no ready/published product regressed. The report digest is 155d682900466bc9e71134ec6c7e5b7ca205e1378e58255c5ea496e5c9fd778f. The old 1,123-blocker report is historical, not the current preview.
The exact pictured Amphinobi decision comes from the user's supplied sealed product example. It is not generalized into a rule choosing the first character from every multi-Pokemon filename. Other unresolved primary artwork, years, editions, quantities, translations and series codes remain visible in the blocked report. A missing product year is never replaced by a booster set year.
Local review artifacts are under reports/sealed-naming-global-audit-20261021/: dry-run.csv, resolved.csv, blocked.csv, families.csv, dry-run.json and summary.json. The family table includes models, rules, counts and remaining reasons even for families without any newly ready products.
Verification and rollout
Follow-up over the 906 remaining blockers
The prior report is retained unchanged and reproduced by digest before the new comparison. Four additional observed Red/Green cycles cover Paldean Fates being a brand rather than a regional-form qualifier, compact/apostrophe name aliases, separating the expansion from a Premium Collection's distinctive name, and source/code-corroborated English-only series absent from the French set catalogue. No French edition, membership, release year or physical variant is invented.
The new preview resolves another 34 products: 251 total unpublished ready, 1,284 published unchanged, 872 blocked, 56 excluded. All 2,463 tags are preserved; no previously ready or published proposal regressed. Of the remaining 872, 647 lack a verified year (257 lack only the year); 225 have other blockers without a missing-year reason. Reasons are not otherwise mutually exclusive.
New report: reports/sealed-naming-906-review-20261021/. Its resolved.csv contains the 34 additions only; dry-run.csv contains the complete current scope, including the previous 217 unpublished proposals. families.csv and blocked.csv retain all outstanding models and reasons. Digest: fc946b07a7721eb9979df4073bd6683fe7145241773c7b32f5cfd5f946cfbb15.
Current API tests: 1,478 passed, 14 skipped; strict TypeScript/check-JS passed. This follow-up used local snapshots only: no connection to the VPS or database. No application, new migration, deployment, restart or collection operation.
Approved optional subtitle year (latest preview)
The user explicitly approved no longer blocking a correct label solely because its subtitle year is unknown. Such a year is now a separate subtitleWarnings entry. Keep an existing subtitle or null; do not invent dates. Years needed in the label or in an explicitly reviewed edition identity remain blocking, as do other missing facts and variant ambiguities. The approval digest now includes this policy, invalidating approvals for historical proposals.
The exact same local catalogue snapshot and previously reviewed evidence give:
| Status | Products |
|---|---|
| Unpublished ready | 508 |
| Already published, unchanged | 1,284 |
| Blocked | 615 |
| Excluded mixed items | 56 |
This resolves 257 additional products without adding any researched year. All 2,463 tags are unchanged; no ready or published product regressed. Sixteen blocked products lack a year required in their label. Remaining reasons can overlap: collection identity (182), distinctive name (148), Pokemon (105), expansion (81), block (56), series code (40), quantity (28), combined series codes (22), variant/edition (18), and other family-specific facts.
Current report: reports/sealed-naming-optional-subtitle-year-20261021/. resolved.csv contains the 257 newly unblocked labels; dry-run.csv includes the entire catalogue, old tags, proposed labels, subtitles, blocking reasons and separate warnings. blocked.csv lists the 615 remaining blocked products. Digest: c6690839e3e193dd5b46621e08c2337e520e0189206e42270e0a5ba4e5b63acb.
API: 1,482 passed, 14 skipped; ingestion: 554 passed; TypeScript/check-JS passed. No VPS access, database mutation, migration, deployment or account operation. These 508 unpublished labels are proposals, not applied production changes.
Final family-model review of the remaining 615 (latest)
The final pass reuses the same local post-0046 snapshot and reviews all 82 Lulu models / 87 keys. No additional year hunt or VPS connection. Commercial titles bound to the exact asset/hash now fill missing tin collections, display brands, coffret distinctive names, explicit Pokemon pairs and deck-display editions. Abbreviated French filenames cannot override a regional form named in a source. Verified booster-product titles can identify an exact reference expansion even when the historic filename abbreviates it. Suffixes are not invented; family misfilings and contradictory expansions are reported rather than reclassified.
Official localization evidence is retained for trainers and eight additional forms. Unknown forms still cannot become partially translated hybrid names. Homonyms are checked without modifying published titles or pretending that a repeated Pokemon distinguishes two editions. Existing label/tag mobile behavior does not require an additional mobile patch.
393 of the 615 are resolved. Final catalogue preview:
| Status | Products |
|---|---|
| Unpublished ready | 901 |
| Published unchanged | 1,284 |
| Blocked / not proposed for application | 222 |
| Excluded mixed items | 56 |
Every one of the 2,463 tags is preserved; previous ready/published labels and subtitles have zero regressions. The 222 remaining rows have per-ID evidence:
| Primary reason (mutually exclusive) | Products |
|---|---|
| Principal Pokemon or exact form not established | 87 |
| Quantity explicitly required by the case model | 28 |
| Distinctive commercial name or edition not established | 25 |
| Required expansion or combined codes not established | 20 |
| Documentary identity correspondence insufficient | 18 |
| Year explicitly necessary in the title | 16 |
| Artwork / edition homonyms not distinguishable | 12 |
| Documentary hold on identity or edition | 8 |
| Source contradicts current family or series | 8 |
Single final review directory: reports/sealed-naming-lulu-final-20261021/. dry-run.csv contains all tags, labels and outstanding questions; ambiguities.csv adds the source title, URLs, notes, family model and the exact missing fact for each blocked product. resolved.csv contains the 393 additions. families.csv accounts for all models; dry-run.json binds the evidence and proposals. Digest: 217aedd4a2a21219c442c2b616d942d73637852643beafed4f5e270264898af6.
API: 1,492 passed, 14 skipped. Ingestion: 554 passed. TypeScript/check-JS passed. No live DB/E2E claim, no VPS access, migration, naming application or deployment. All 901 unpublished proposals still require approval, backup and stale-snapshot checks before remote application. Historical reports above remain historical.
Earlier test coverage
Six focused observed Red/Green cycles cover artwork names, Theme Deck names, Premium Collections, coffret batches, Mini Tin collections and rejection of a partially translated unverified form. Existing model coverage exercises every non-excluded technical key, along with the established exceptions and guards.
API: 1,474 passed, 14 skipped. Strict TypeScript/check-JS passed. Ingest: 554 passed. Existing mobile catalogue label/tag tests: 39 passed. No mobile behavior change or duplicate naming dictionary is needed; it already displays labels. No new database migration, VPS write, deployment, restart, account operation or collection mutation. Previously approved migration 0046/publication is retained. These additional proposals require separate review and approval before applying.
Engine corrections: current local dry-run
Supersedes the 222-blocked report above without overwriting its historical data. Source-bound forms, shared regional groups, TAG TEAM decks, trainer-kit pairs, commercial collection names and positively identified physical formats no longer fail generic single-Pokemon templates. The renderer also resolves the alternative placeholder nom distinctif to the canonical Nom distinctif fact. Approved compositions provide combined series codes, never candidate contents.
| Outcome | Count |
|---|---|
| False blockers resolved | 80 |
| Unpublished ready labels | 981 |
| Published unchanged | 1284 |
| Still non-publishable | 142 |
| Excluded | 56 |
| Historic tags preserved | 2463 |
| Regressions of previous ready/published rows | 0 |
| VPS reads or writes this pass | 0 |
Remaining questions: 28 required quantities, 16 title-required years, 3 source identity contradictions, 8 documentary holds, 33 principal-Pokemon/form gaps, 8 commercial-name gaps, 18 insufficient documentary matches, 20 required extension/code gaps and 8 unresolved artwork/edition homonyms. These are not all editorial choices: physical quantities and editions require evidence. In particular, no general first-Pokemon-wins convention is assumed for Mini Tins.
Four ETB variants use source-proven Styles de combat (rapid/single strike) or Regne de Glace (ice/shadow rider) naming facts. Three tins also have source-series correction proposals. None of these changes writes the catalogue set_id relation.
Single current report: reports/sealed-naming-engine-corrections-20261021/. rapport.md includes every remaining row by family; dry-run.csv contains all tags/labels; resolved.csv lists the 80 additions; series-corrections.csv separates proposed associations. Digest: 9e9449d78a1a93aedb9da62dcc8e525464376f763897de3fa5d2c261319f7dc9.
Evidence includes the official Champion's Path gym product galleries and French checklist, plus the exact French Hisuian Basculin blister listing:
- https://www.pokemon.com/us/pokemon-tcg/product-gallery/champions-path-pin-collections-turffield-hulbury-and-motostoke-gyms
- https://www.pokemon.com/us/pokemon-tcg/product-gallery/champions-path-pin-collection-ballonlea-spikemuth-and-hammerlocke-gyms
- https://www.pokemon.com/us/pokemon-tcg/product-gallery/champions-path-special-pin-collection
- https://assets.pokemon.com/assets/cms2-fr-fr/pdf/trading-card-game/checklist/swsh35_web_cardlist_fr.pdf
- https://www.cardmarket.com/fr/Pokemon/Products/Blisters/Silver-Tempest-Hisuian-Basculin-1-Pack-Blister
API: 1513 passed, 14 skipped; ingestion: 554 passed; TypeScript/check-JS passed. No live DB/E2E claim. No account or collection changes. No deployment, migration, remote access or naming application. Application requires renewed approval, backup and fresh snapshot verification; existing published labels remain intact.