# CANON — Glim

> Tier 0 · one page of absolutes · pack `0.1.0-brand`  
> Cite this file; do not contradict it. Tags: **derived** from source · **draft** awaiting founder confirm.

## 1. Positioning

**For** AI product builders (solo and small teams shipping assistants, copilots, voice UIs, or agents), **Glim** is an ambient companion library — one four-state mind across hand-built bodies — **because** users trust a readable presence during model latency and ignore looping spinners.  
*(derived — `launch.html`, `index.html`, `README.md`)*

## 2. The enemy

**Opaque waiting** — the UI goes dead or lies with fake progress while the model works. Named as a condition, not a competitor.  
*(draft from launch kit — confirm: keep this wording?)*

## 3. The two promises

1. **Functional:** A companion you can mount today with a four-state API (`idle` · `thinking` · `talking` · `listening`), free offline starter, zero dependencies. *(derived)*
2. **Emotional:** The product feels *with you* while it thinks — not abandoned, not faking. *(draft — confirm emotional line)*

## 4. The decision filter

Would a junior ship this on a Friday without inventing a metric, a buy button that cannot buy, or a presence state the model is not in?  
*(draft — confirm)*

## 5. Hard gates

All must hold before claiming the companion is “wired to the model”:

1. States are driven by **real** host events (request start, first token / reply, complete, error) — not a decorative loop sold as intelligence. *(draft / product rule)*
2. Status copy is honest: **local** vs **live** when the demo (or host) might not reach a model. *(derived — site FAQ / status line)*
3. The free path hands a **working file** (starter or `glim.js`) that runs offline. *(derived — Council / launch kit)*
4. Motion respects `prefers-reduced-motion`; companions stay decorative for AT unless captions are wired. *(derived — FAQ)*
5. No fake checkout, fake social proof, or invented download/user counts. *(derived — launch kit)*

## 6. The never-list

1. Never ship a buy button that does not buy. *(derived)*
2. Never invent metrics, testimonials, or “N companies use us.” *(derived)*
3. Never claim the companion proves the model is correct — it shows **presence/state**, not truth. *(derived / trust)*
4. Never use “revolutionary,” “unlock the future,” or purple-glow SaaS clichés. *(derived — voice lock)*
5. Never treat a spinner loop as the product story. *(derived — positioning)*
6. Never quietly contradict the free tier: eight MIT creatures + full API are real commercial use. *(derived)*
7. Never pretend React/Vue wrappers or native SDKs ship in the npm package until they do. *(derived conflict — see INDEX)*
8. Never use `--faint` for essential small body copy on `--bg` without fixing contrast. *(derived measurement — open decision)*

## 7. Trust rules

- Show state **plainly** when it maps to a real host phase.
- Qualify the marketing/demo when the reply is a **local personality**, not a live model.
- Withhold “live intelligence” claims when offline or unwired.
- Absence is named: empty caption, sleeping GPU off-viewport, waitlisted checkout — each with a reason a person can read.
- Provenance for assertions: companion state + optional caption text + (on the site) local/live status line. Model answer provenance is the **host app’s** job.
- Refusal: if there is nothing worth saying, stay idle or show quiet presence — do not invent a striking finding every time. *(draft for product guidance; site demo already falls back locally)*

## 8. What varies / what does not

| Varies | Does not |
|---|---|
| Body / creature id, size, theme palette | The four states and their names |
| Host framework snippets | Core `mount` / `setState` / `say` / `react` API |
| Plan tier (which creatures you may ship under license) | That the published `glim.js` currently registers all bodies technically *(conflict — INDEX)* |
| Accent mood colour driven by state | Deep chroma background, type trio, voice |

## 9. Colour and voice semantics

**Colour**

| Token | Meaning | Never |
|---|---|---|
| `--mood` / idle teal `#38e8d0` | Brand accent, primary action, “alive” | Decorative wallpaper on every surface |
| thinking violet `#8b7cff` | Working / computing | Error |
| talking pink `#ff9eb1` | Speaking / reply | Idle chrome |
| listening green `#74f59a` | Attending to input | Danger |
| `--danger` `#ff8f9f` | Destructive / error emphasis | Brand celebration |
| `--bg` `#06070b` | Canvas | Pure black `#000` as brand black |

**Voice** — attentive, spare, warm, precise, unshowy. Short sentences. Verbs and outcomes. Honest limits.  
Owned: presence, companion, four-state mind, offline starter, waitlist.  
Forbidden: revolutionary, fake proof, buy-theatre, empowerment clichés.  
*(derived — `launch.html` §9)*
