Generated metadata

SkillDev tools

Lets your agent diagnose missing or stale build metadata caches when a project's generated files or catalogs resolve incorrectly.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Generated metadata skill

About this capability

Diagnose missing or stale dist/*-metadata.js, the Vite metadata plugin cache, and the ../name-metadata.js import alias. Use when dist/ is missing, a catalog resolves nothing, a spec fails only locally, or editing the Vite metadata plugin. Do not hand-edit dist/ or add another metadata module.

What this skill tells your AI

The instructions your AI receives, as published by liberatedpixelcup/universal-lpc-spritesheet-character-generator in .agents/skills/generated-metadata/SKILL.md and read by ahel’s review.

Vite writes five modules to dist/: index-, palette-, item-, credits-, and layers-metadata.js. Source code imports them as ../<name>-metadata.js, never as a dist/ path. See Generated metadata and the dist alias.

A resolve failure means dist/ was never built. After a fresh clone, run npm run dev or npm run build once before specs, ZIP profiles, or seedCatalogWithGeneratedContext. profile:app starts Vite itself.

The plugin fingerprints sheet_definitions/, palette_definitions/, and scripts/generateSources/ under .cache/ (gitignored). If the fingerprint matches and dist/index-metadata.js exists, generation is skipped. A generator emit change without a definition change used to reuse stale dist/. Symptoms: a seeded catalog resolves nothing, not-found for an item you just added, or a spec that passes for someone else.

Force the full pipeline:

VITE_REGENERATE_SOURCES=1 npm run dev

Deleting .cache/ has the same effect. Details: File Generation.

After changing emit (scripts/generateSources/), run npm run metadata:size and npm run metadata:size:check. The check is the CI budget (item raw 500 KiB, item + index pair 600 KiB). Raising a budget is deliberate. Do not hand-edit dist/ or add a sixth metadata module.

Intern tables

Emitted index-metadata.js stores shared tables; item-metadata.js stores indices. registerIndexMetadata / registerItemMetadata expand them.

TableIndexed byRestores
variantArraysper-item vItemLite.variants
recolorVariantArraysper-item rrecolors[0].variants
paletteArraysper-recolor precolors[].palettes

Emitted lite has v / r / p and omits the expanded arrays/maps. Not emitted on lite: licenses, tags, required_tags, excluded_tags, priority (credits chunk / sheet JSON / generator tree sort).

Signals

GitHub stars
2k
Forks
580
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
generated-metadata
Source
github.com/liberatedpixelcup/universal-lpc-spritesheet-character-generator