# Verification

## Automated checks

`npm test`: 21 tests passed, none failed. Covers deterministic RNG streams, full opaque input, argument validation, frozen recipes, all visual families, geometry variation, texture isolation, pinned PRNG/recipe/SVG fixtures, markup safety and playground HTTP routing.

`npm pack --dry-run`: package contains only the two source modules, package metadata, README and license. No dependencies or build step.

## Browser checks

Local Chromium and the anonymous relay-hosted playground passed 23 recorded assertions, covering generation, family filtering, selected-avatar inspection, repeatable chat avatars, empty/arbitrary seeds, theme/crop behavior, mobile overflow, size changes, pagination, seed-link restoration and clipboard SVG/link exports. Browser DOMParser accepted 1,000 generated SVGs across all eight families. Desktop and 390-pixel portrait screenshots were visually inspected.

Two playground defects were reproduced and fixed before publication: dark theme inherited the light theme's foreground, and inline spans prevented circular cropping in chat. Rechecks passed.

The published site's six paths were downloaded and compared with local SHA-256 hashes; JavaScript MIME types and root routing were verified. All observed runtime resources came from the site's own origin.

## Size and sampling

Combined library source: 14,989 bytes, or 5,023 bytes gzipped together. A single Node run generated 10,000 SVGs in about 150 ms on the development host; this is an observation, not a cross-device performance guarantee. Average SVG length was 881 bytes.

The same sample (`sample/0` through `sample/9999`) produced 9,936 distinct SVG strings. Some avatars therefore match exactly, and more may look similar. The generator is not an authentication or key-verification mechanism. Automated geometry variety does not establish recognition accuracy; that needs actual use or a user study.

## Scope

No physical-device or cross-browser matrix was run. Seedmark is a standalone module and playground; it has not been integrated into tinyrelay's chat UI. Version 1 fixes visual output so future releases must preserve it or explicitly introduce a new visual version.
