# Export disclosure

Every card has a black powered-by strip and a tiny AI disclosure on the bottom paper lip.

## Sub-features

- Black “powered by aisthetix” strip and existing CTA.
- “ai generated” is the last draw operation.
- Both PNG dimensions and source hashes are recorded.

## How to get to it (user POV)

Open Share on a saved try-on result and choose Story, Post, Status, Message or Download. All current controls export the Story-sized card. WordPress also exposes Share in saved-look gallery rows.

## Driving it with native canvas

Preconditions: doctor passes and saved photo/thumbnail inputs are available.

Run `node .cursor/skills/verify-share-card/render.cjs /tmp/polaroid-photo.jpg /tmp/polaroid-thumbnail.jpg /tmp/polaroid-proof` from the repository root with `CANVAS_MODULE` set as in the skill. Inspect both standard PNGs, then confirm every JSON operation list ends with fillText("ai generated"). The strip and disclosure never intersect the photo and stay within the canvas.

## Gotchas

A compositor PNG proves asset rendering, not a browser download, clipboard transfer or phone share sheet. Messages, atx landing and telemetry remain unchanged.
