Served check on /sites/AngelsWorks... catalog connection to ProductCatalog/Products; the 7 tyres appear once approved.
Outcome (spice-verify, 2026-09-27): PUB.2 verdicts: category+item friendly-URL routing PASS (site AngelsWorks, manifest SAF-Site-Manifest.xml:866/872, PagesController.cs:147-153, GET /sites/AngelsWorks/products 200, /sites/AngelsWorksPortal/products 404 confirming Portal-suffix stripping). Category/root listing FAIL: the default Compare view (SAF-Site-Manifest.xml:191-193, IsNotNull EurPerWp) is applied to every catalog category via ListViewModelBuilder.cs DefaultViewName="" (line 440) being treated as a named view by SelectView (line 176/454), so /products and /products/caravan-tyres/tyres always return zero caravan-tyre rows (EurPerWp does not exist on ContentType.CaravanTyre, Parts.Procurement.xml:665 vs :487) - structural, independent of moderation; item pages (no view arg) bypass it and render fine. Moderation-hiding claim FAIL as tested: this loopback verifier is classified LocalSystem (AppPrincipalResolver.cs:73-81, IsLocal=loopback), which ContentApproval.cs:40 auto-approves, so ALL 7 Pending caravan-tyre rows (_ModerationStatus=2, confirmed via MCP CAML) are fully visible on this served surface - category nav counts (caravan-tyres/tyres (5), complete-wheels (2)) and full item pages (e.g. /sites/AngelsWorks/products/cst-trailermaxx-155r12c-tl 200 with title/price/datasheet) render for a caller with NO Authorization header. A genuinely non-loopback caller would resolve to AppPrincipal.AnonymousLevel=Contribute (Parts.xml:3593, PartRole.Member, not an approver) and should NOT see Pending rows, but this sandbox cannot originate a non-loopback request so that path is unverified, not confirmed passing. PublishingRollupImage thumbnail: N/A/missing on every row (solar AND tyre) - no product has ever had this field populated; ListView.xslt:977-980 correctly renders an img tag when the URL is present, so this is a data gap, not a rendering bug.
(claude-code, 2026-09-28 18:33 UTC) Smoke 2f: the thumbnails need the PublishingRollupImage filled on the tyre rows too.
(claude-code, 2026-09-28 18:33 UTC) Second entry: alt text on the category thumbnails too.
(System Account (SPICE.Web), 2026-09-28 19:08 UTC) Typed in the Edit form.