--- name: rebrand description: Apply a downstream brand to a PlatformPlatform fork. Edits one config file, drops in eight supplied logo assets, renames the solution and CLI to the new brand, and rotates UserSecretsId across every csproj. Skips all other source files. Use once per downstream fork after cloning, or to re-flip a brand later. allowed-tools: Read, Write, Edit, Bash, AskUserQuestion --- # Rebrand Apply a downstream brand to a PlatformPlatform fork. The rebrand is intentionally narrow: brand values live in one JSONC file, logo assets live at canonical paths, and a handful of names (solution file, CLI alias, UserSecretsId, Docker prefix) flip in lockstep. Source code is not touched. This skill expects the upstream canonical layout — primary logos named `logo-{light,dark}-88.png` and square marks named `logo-mark-{light,dark}-192.png`. If you are on an older PlatformPlatform that still uses `logo-wrap-*` or `-512` mark names, the upstream needs the one-time rename first. ## STEP 1: Verify a clean working tree ```bash git status --porcelain ``` Stop if there is anything staged or unstaged. Rebrand touches many files at once and a mid-rebrand merge with unrelated changes is hard to untangle. ## STEP 2: Collect inputs Use AskUserQuestion to collect all values up front. Do not write anything until every value is in hand — otherwise a partial rebrand leaves the fork in a broken state. Required inputs: 1. **Product name** — proper-cased product label shown in UI, emails, page titles. Example: `Acme`. 2. **CLI alias** — short lowercase shell alias replacing `pp`. Example: `acme`. No spaces, no dashes inside the binary name. 3. **Solution name** — base filename for `PlatformPlatform.slnx`. Example: `Acme` (yielding `Acme.slnx`). 4. **Internal email domain** — `@example.com` (leading `@` required). Classifies users as internal for telemetry segmentation. BackOffice access is controlled by Entra ID, not by this setting. 5. **Taglines** — one-line product descriptions split across two channels and per locale: - `tagline.web.` — shown in the landing page footer (consumer reads the active Lingui locale). - `tagline.mail.` — shown in the email footer (renderer reads the template's locale). The two maps must list the SAME locales (backend fails loud at startup if they diverge); the en-US value is REQUIRED. Collect en-US and da-DK for both channels — for downstream brands the web and mail copy will often differ (e.g. the email leans toward the recipient context). For PlatformPlatform itself, web == mail. 6. **Primary color** — four CSS color expressions (oklch / hex / hsl / rgb all valid) under `branding.primaryColor`: `light`, `lightForeground`, `dark`, `darkForeground`. Drives the "button color" and its on-color text in both light and dark modes. The value flows through theme.css via an inline `