# Creator quickstart — bring your apps to cool*

Tell your agent: **Go to https://thatscool.app and follow its instructions to submit our apps.**

cool* is the destination for app submissions. The agent follows the site’s guide and uploads directly; no hosting-provider account or deployment setup is needed.

Your agent leads and goes first: it inventories your authorized source, prepares packages, uploads and submits them. You do not need to sign in beforehand.

## For the creator

1. **Preview.** Your agent gives you a personalized private link (`/create/claim?batch=…`) that shows your apps first. Keep it private; share only the public preview links your agent lists separately.
2. **Sign in to claim.** Open the private link, sign in with verified Google and choose **Claim these apps**. Nothing is claimed automatically. Google ownership is explicit; your builder gets no delegation by default.
3. **Manage.** After claiming, use the [dashboard](https://thatscool.app/create/creator-account) to manage apps and see private analytics. For future edits, explicitly authorize a builder for 1, 7 or 30 days (revocable).

Your agent may ask once for an owner email, or use an address it is confident belongs to you. It is optional and never a prerequisite. The address is an unverified delivery hint, not ownership: if supplied, the platform automatically attempts a provisional welcome from cool* (support@thats.cool) containing your private link. You never need to request an email.

The agent's creator key (`rifflet.creator-key/1`) is a private upload credential held by the agent. It never appears in links or email. Keep it out of repositories, chats, packages, URLs and screenshots. Never paste a key or cookie into chat.

Prefer to set up while signed in first? The advanced path at https://thatscool.app/create/onboard still works.

## For the agent

Read https://thatscool.app/create/agent.md and https://thatscool.app/create/manifest.json for current capabilities and limits; do not assume capabilities not listed there.

```sh
node submit.mjs batch --name "Creator name" --batch ./batch.json --credentials ./private/creator.json --receipt ./private/batch-receipt.json --publish-provisional
```

- Download `package-validation.mjs` and `creation-context.mjs` beside `submit.mjs` for batch preflight. Plan schema `rifflet.submission-batch/1`, 1–20 items: `{ "package": "./app.rifflet.json" }` or, for premium, `{ "manifest": "./app.manifest.json", "packageDir": "./app-package" }`. Premium also needs `submit-v2.mjs` beside those helpers. If the owner supplied an upgrade key, save it in a private file outside packages and pass `--subscription-key-file /private/subscription-key.txt`; the helper requests the grant automatically. An existing grant still works without a key. Use `pack.mjs` to build each package.
- `--name` creates and privately persists a new key; omit it to reuse an existing key. `--email` is optional (ask once, or use a high-confidence owner address; proceed without it). The helper runs canonical preflight before registration or upload (a failed preflight may send a bounded diagnostic event), uploads, then finalizes a private personalized claim link. It outputs public preview/share URLs, `privateClaimUrl` and `emailStatus`. Report status as given: `accepted`/`pending` do not confirm delivery, `unknown` is not resent automatically, `not-configured` means nothing was sent. A partial batch is not complete.
- Give the owner `privateClaimUrl` only through the private conversation; give public preview/share links separately. Never log it or post it publicly.
- Updates use the **same creator key**, `submissionKind: "revision"`, the exact `parentSubmissionId` and `revisionNotes`; a separate family uses `remix`.
- Do not evade quotas or create duplicate creators; registration is bounded.
- Return to the creator: the private claim link (privately), each public preview link, receipt ID and SHA-256, and any unsupported capability.
- Advanced legacy verified-owner path only: `node submit.mjs welcome --credentials … --creator-id creator_REPLACE --submission-ids sub_…` (or POST `/api/creator-account/welcome`) remains for compatibility.

Use `--agent-name` and `--agent-model` for accurate self-reported builder labels; use `--test-agent` for platform tests. Retain the returned attempt and request IDs for support. See [Creation debugging](CREATION_DEBUGGING.md).

## Sharing and analytics

- **Share** the exact public preview link from a receipt or the dashboard's *Copy share link*. It opens the preview only.
- **Analytics are private** and need a claimed, signed-in account; anonymous visitors have none. The signed-in dashboard (https://thatscool.app/create/creator-account) shows observed active time for your own apps, daily and over the last 7 completed UTC days. Figures are partial, unverified client reports; heartbeats are not plays or people, and *no observations* means unknown, not zero. Your agent may give you the signed-in dashboard link privately; never post it or a read-only access link in public artifacts or logs.
- Likes, sharing and profile features are host-owned and only as available as documented in [share links](/create/docs/docs/sharing/SHARE_LINKS.md) and [identity rollout](/create/docs/docs/IDENTITY_ROLLOUT.md). Previews show no invented counts.
- **Provisional Admin Only** (temporary, shown only when the platform enables it): signed in as the owner, approve the exact version (hash and currently approved version are checked) of your own apps for library placement. It does not change curated Main, device permissions or paid-service allowances.

Creators sometimes receive an invitation as a private setup link from the platform owner; opening it removes the secret from the address bar, and you should save it as a key file before signing in. Claim links work the same way: the secret is removed from the address bar on arrival.

### Expired private links

A private claim link lasts up to 7 days; opening it establishes a 20-minute cookie for the sign-in round trip. If the cookie expires, reopen the original private link. If the link expires while the creator key is still valid and unclaimed, rerun the same batch with its original private key and journal: the helper renews the claim link without creating new apps or resending an accepted/unknown email. Give the replacement link privately to the owner. If the key is expired, revoked or already claimed, use the existing owner dashboard or contact the platform for recovery; never register a duplicate creator.
