Изображения значков (badge images)
Use this skill when adding images for a new category, fixing missing icons, or ensuring every JPG/PNG has a WebP sibling.
When to Use
- •Adding a new category's images under
public/Новые значки/ - •Fixing a badge or level image not showing in the UI
- •Regenerating or verifying WebP siblings
Workflow (new category)
- •
Map category in src/utils/badgeImages.ts:
- •Add
'<categoryId>': '<folder name>'tocategoryFolderMap. - •Folder name must match the folder under
public/Новые значки/(usually lowercase, e.g.'5': 'за отрядные дела').
- •Add
- •
Folder/file names: Prefer normalizing assets to match
normalizeFolderName()(lowercase, ё→е, no special chars). If Windows EPERM blocks rename, add a code exception ingetBadgeFolderName()orgetBadgeImagePath()(e.g. base file name for one badge) in the same file. - •
WebP:
- •Add the category folder to
targetDirsin scripts/verify-webp-siblings.mjs. - •Run
npm run images:webpto generate.webpfor all.jpg/.png(except*.orig.*). - •Run
npm run verify:webp— must pass (build depends on it).
- •Add the category folder to
- •
Check UI: Restart dev server if needed, open category and badges (hard refresh Ctrl+F5 if cache hides new images).
Path Convention
- •Base:
public/Новые значки/<categoryFolder>/<badgeFolder>/ - •Files:
1 <level name>.jpg(and optionalреализм/subfolder for realism variant). - •
badgeImages.tsbuilds paths from category id, badge title, level id/title; normalization and exceptions must match actual folder/file names on disk.
Reference
Details and pitfalls: AGENT_REPO_GUIDE.md. Scripts: scripts/generate-webp.mjs, scripts/verify-webp-siblings.mjs.