# SmolForge design assets

This directory contains the visual language and canonical art used by
SmolForge. Product behavior belongs in the owning package; these documents
explain the reusable design decisions, source assets, and generation contracts.

For product UI composition and accessibility rules, see
[Workbench interface primitives](workbench-ui.md).

## Collections

- [Clay UI](smolforge-clay-ui/README.md) defines the tactile workshop direction
  used by the product shell, top-level screens, social cards, and light/dark
  themes.
- [Thunder Smith kit](thunder-smith-kit/README.md) contains the official
  character source, animation contract, prompts, validation, export tooling,
  and generated review previews.
- [Workshop prop atlas](workshop-props.md) documents the prop-only runtime art
  used to give product empty states and headers page-specific physical objects.

## Binary artifact policy

Commit binary art when it is canonical source material, a required conformance
fixture, or a deliberately curated design reference. Generated previews may be
committed when they materially improve reviewability and their source and
regeneration path are documented.

Before adding another large board or animation set:

1. prefer lossless WebP or an appropriately compressed PNG/GIF;
2. avoid committing multiple equivalent exports;
3. keep generated output beside its source contract and document how it was
   produced; and
4. consider Git LFS when a single asset approaches the host limit or repeated
   revisions would create substantial repository history. Forge migration and
   builds do not require the local helper; install it only for transparent
   local checkout/add/edit hydration.

Do not commit temporary image-model outputs, local build directories, or
machine-specific paths.

Run `npm run test:design-assets` before committing design changes. The check
rejects review PNGs over 1 MiB, any design binary over 2 MiB, and
machine-specific paths in design Markdown or JSON. Runtime workshop atlases
under `packages/web/public/forge-art/` are capped at 200 KiB so page-specific
clay props do not quietly inflate product routes. Runtime sprite strips may
remain PNG when their transparency contract requires it.
