mirror of
https://github.com/hanzoai/icons.git
synced 2026-09-24 16:59:52 +00:00
Every push has been red at "Structural invariants (the repo agrees with itself)": ::error::31 tracked path(s) carry a site-generator vendor's name. Every one of them is a URL the browser requests, so the vendor's branding is in the page. The second sentence is what does not hold here. vendormark refuses a vendor-named filename because a site that generator built wears the name in its asset URLs, and there is otherwise no honest reason to have one. This repo is the exception: a brand-mark catalog forked from lobe-icons, 323 directories each named after the vendor whose logo it draws, with static assets named to match. The 31 flagged paths are one such entry — its component folder under src/ and under packages/react-native/, plus its avatar, svg, png and webp renderings. No page of ours requests them; a consumer that imports that one icon does. The mark the check actually hunts is absent. Its content rule and its identity rule both pass, so there is no vendor-named upload folder, no tagger plugin in the dependencies, no injected third-party script, and nothing of the generator in the history. Only the path rule fires, and only on the catalog row. That is also why deleting the entry would be the wrong repair: it drops a public export to satisfy a rule about a provenance this repo does not have, and leaves the neighbours it sits between — Cursor, Replit, V0, Windsurf, the same kind of tool — untouched. So take the escape hatch the check documents for a repo whose job is to name these vendors, and keep it as narrow as the exception: the icon's own two folders, and the four shared asset directories restricted to that stem and extension. Nothing else is exempt, here or anywhere. Verified: vendormark exits 0 where it listed 31 paths, and a probe adding a vendor-named upload folder and a tagger reference still reds it (1 path, 2 content lines). install and tsc --noEmit both exit 0, 0 errors.
27 lines
1.6 KiB
Plaintext
27 lines
1.6 KiB
Plaintext
# vendormark's path rule refuses a tracked filename that carries a site-generator
|
|
# vendor's name, on the reasoning that there is no honest reason to have one. This
|
|
# repo is the exception that rule documents: a brand-mark catalog, forked from
|
|
# lobe-icons, whose whole job is to draw and name other people's logos. It ships
|
|
# 323 of them — Anthropic, OpenAI, Cursor, Replit, V0, Vercel, Windsurf — each a
|
|
# directory named after its vendor with static assets named to match. Lovable is
|
|
# one row in that table. It cannot be drawn without being spelled, any more than
|
|
# the history-scrubber rules can strip a string they are not allowed to write.
|
|
#
|
|
# What the gate hunts is a site the generator BUILT, and that mark is absent here:
|
|
# no vendor-named upload folder, no tagger plugin in the dependencies, no injected
|
|
# third-party script, no generator meta tag, no bot in the commit identities. Only
|
|
# the path rule fires, and only on the catalog entry. So the exemption is that
|
|
# entry and nothing else — the icon's own two folders, and the shared asset
|
|
# directories narrowed by extension. A vendor-named upload folder added tomorrow
|
|
# matches none of these and still reds. The content and identity rules, which are
|
|
# what actually distinguish a generated site, stay armed everywhere.
|
|
|
|
src/Lovable/*
|
|
packages/react-native/src/icons/Lovable/*
|
|
packages/static-avatar/avatars/lovable.webp
|
|
packages/static-svg/icons/lovable*.svg
|
|
packages/static-png/dark/lovable*.png
|
|
packages/static-png/light/lovable*.png
|
|
packages/static-webp/dark/lovable*.webp
|
|
packages/static-webp/light/lovable*.webp
|