{
 "id": "3.11",
 "title": "Character usage",
 "department": "Design",
 "department_slug": "design",
 "direction": {
  "id": "cooker",
  "name": "Seeti"
 },
 "branded": true,
 "status": "draft",
 "owner": "Param",
 "last_verified": "Mon Oct 26",
 "holds": "Slots, poses, never on a control",
 "urls": {
  "html": "https://handbook.joinsquareup.com/design/character-usage/cooker",
  "markdown": "https://handbook.joinsquareup.com/design/character-usage/cooker.md",
  "json": "https://handbook.joinsquareup.com/design/character-usage/cooker.json"
 },
 "other_directions": [
  {
   "id": "dog",
   "name": "Fetch",
   "json": "https://handbook.joinsquareup.com/design/character-usage/dog.json"
  },
  {
   "id": "bee",
   "name": "Buzz",
   "json": "https://handbook.joinsquareup.com/design/character-usage/bee.json"
  },
  {
   "id": "raccoon",
   "name": "Scoop",
   "json": "https://handbook.joinsquareup.com/design/character-usage/raccoon.json"
  },
  {
   "id": "octopus",
   "name": "Ocho",
   "json": "https://handbook.joinsquareup.com/design/character-usage/octopus.json"
  }
 ],
 "tldr": {
  "headline": "Seeti the pressure cooker lives in seven slots, off every control",
  "points": [
   {
    "icon": "spark",
    "text": "Seeti toots three times when the week is ready, around the brand's work."
   },
   {
    "icon": "lock",
    "text": "It never sits on a button, a card, a decision or a brand photo."
   },
   {
    "icon": "warn",
    "text": "Seeti never claims it posted your work or lifted your sales."
   },
   {
    "icon": "rocket",
    "text": "Chilli red covers under ten percent of a screen."
   }
  ],
  "stat": {
   "value": "18",
   "label": "Of 45 screens"
  },
  "decide": "Should the character layer start on or off for a new brand?",
  "mood": "waiting"
 },
 "sources": [
  "brand-directions/cooker/kit-skin.js",
  "brand-directions/cooker/system.md",
  "brand-directions/docs2/data/dirs.json",
  "brand-directions/_shared/product-model.md:129-142, 207",
  "brand-directions/_shared/kit-contract.md:19-27",
  "brand-directions/_shared/ia.md:83-131",
  "brand-directions/_shared/no-ai-look.md:7-18, 52-58",
  "brand-directions/_kit/render.js:47-54",
  "brand-directions/_kit/screens.js:83-536",
  "brand-directions/BRIEF.md:241-276",
  "brand-directions/_shared/surface-map.md:463, 473, 475",
  "memory: brand-directions-2026-10-25, brew-sounds"
 ],
 "open_questions": [
  "Seeti's reading line for AI answers names ChatGPT, Gemini, Perplexity and Claude, and the model bans vendor names in front of a founder. Rewrite it? Proposal: Yes: \"Asking AI answers about you.\"",
  "The system file sets ticket labels in uppercase, which the writing rules ban. Keep tickets for books only? Proposal: Yes, order tickets and uppercase stay out of the product.",
  "The model puts the first heart in a 120 px celebration; the kit draws it at 40 px inside the toast. Which? Proposal: The first heart at 120 px once, later hearts in the toast.",
  "Should the character layer start on or off for a new brand? Proposal: On, with sound off, since the slots never block a control."
 ],
 "parts": {
  "Answer": "Seeti, a squat steel Indian pressure cooker with a chilli red whistle that toots three times when the week is ready, is Brew's one character in this direction, and it lives only in seven fixed slots, narrating the week around the brand's work and never sitting on a control, a card or a brand photo.",
  "Today": "Checked 26 October 2026.\n\n| Fact | Source |\n|---|---|\n| The live product has no character. It shows five agent faces and colours, which go; only the area dots stay | [src: brand-directions/_shared/surface-map.md:463] |\n| Logo stickers sit in the feed today and go from view | [src: brand-directions/_shared/surface-map.md:475] |\n| The live app plays sound unless switched off, with 8 synthesized and 29 recorded cues | [src: brand-directions/_shared/surface-map.md:473] |\n| Five directions are in audition; Param picks one and everything is redone around it | [src: memory brand-directions-2026-10-25] |\n| Seeti's art: every pose and face is traced from one flat hero, cooker/img/hero.png, into cooker/svg/ | [src: brand-directions/cooker/system.md:86-100] |\n| Owned colour chilli red #ff3d2e on steel #c9ced6 with ink #15161a; chilli covers under ten percent of a screen | [src: brand-directions/cooker/system.md:86-100] |\n| Anatomy that never changes. A squat steel cooker, the long red handle on its right with two stacked bars, a shorter helper handle, the lid inside the rim like a hat, a whistle of two stacked red cylinders, steel tube arms ending in red oven mitts, no legs. | [src: brand-directions/cooker/system.md:86-100] |\n| Signature. Three rising whistle toots when the week is ready. | [src: brand-directions/docs2/data/dirs.json] |\n| Illustration treatment, books and marketing only: kitchen order tickets: paper, mono type and a torn bottom edge for anything handed off, with three red whistle pills as the only progress mark | [src: brand-directions/cooker/system.md:33-36] |\n| The kit gives Seeti these poses: corner cooker/svg/icon.svg, idle cooker/svg/hero.svg, wait cooker/svg/pose-02.svg, celebrate cooker/svg/face-proud.svg, error cooker/svg/pose-09.svg, empty cooker/svg/pose-07.svg, caught cooker/svg/pose-08.svg, heart cooker/svg/pose-04.svg, handoff cooker/svg/pose-06.svg, yes cooker/svg/pose-07.svg, shocked cooker/svg/face-shocked.svg | [src: brand-directions/cooker/kit-skin.js:22-34] |\n| Below 120 px the kit swaps any pose for the small mark, cooker/svg/icon.svg | [src: brand-directions/_kit/render.js:52-54] |\n| No raw generated image may appear; every character image is a flat traced SVG in the direction's palette | [src: brand-directions/_shared/no-ai-look.md:52-58] |",
  "Tomorrow": "Seeti arrives in v1 as an add on layer behind its own off switch. Remove it and every control still works. [src: brand-directions/_shared/product-model.md:131, 152] v1, New.\n\n### The slots\n\n| Slot | Model size | Kit size | Pose | File drawn | Screens | Words |\n|---|---|---|---|---|---|---|\n| Today header corner | 40 to 56 px | 44 px phone, 56 px laptop | corner | cooker/svg/icon.svg | t1, d1 | \"Monday. Fresh specials on the pass. Go on, taste.\" on Monday, \"Back in the kitchen. Something is ready to taste.\" other days |\n| Sign in corner | small corner | 48 px | corner | cooker/svg/icon.svg | f2 | \"Work email, so only your own team gets into this kitchen.\" |\n| Reading your store | 120 to 180 px | 140 px | wait | cooker/svg/pose-02.svg | f4 | \"Cooking your store. About 3 to 4 minutes. Nobody lifts my lid.\" |\n| The reveal | 160 px | 160 px | celebrate | cooker/svg/face-proud.svg | f7 | \"One thing I found while it cooked.\" |\n| Empty states | 96 px | 96 px | empty | cooker/svg/icon.svg | w2, f6 | \"Empty rail. Heart a special to start one.\" |\n| Celebrations | 120 px | 120 px | celebrate or caught | cooker/svg/face-proud.svg; caught up cooker/svg/pose-08.svg | h2, t5 | \"Kitchen’s clean.\" |\n| A heart | celebration, small | 40 px in the toast | celebrate | cooker/svg/icon.svg | t6 | \"Ooh, good taste. More like that, coming up.\" |\n| Errors and cap reached | 96 px | 96 px; 56 px inside Make it | error | cooker/svg/icon.svg | f3, f5, m5, x1 | \"Stuck to the pan. Your other versions are safe.\" |\n| Long waits | wait pose | 64 px making, 96 px offline | wait | cooker/svg/icon.svg | m2, x2 | \"Another batch on the stove. You can step away.\" |\n| Your store header | idle | 56 px | idle | cooker/svg/icon.svg | y1 | \"The pantry: what people say about your store.\" |\n| Brief page sign off | 32 px | 32 px | corner | cooker/svg/icon.svg | h3 | \"Cooked by Seeti. Over to you.\" |\n| Monday email sign off | small | 28 px | corner | cooker/svg/icon.svg | e1 | \"Five specials for your store, ranked and drafted. Go on, pick.\" |\n\nSeeti appears in 18 of the 45 screens. [src: brand-directions/_shared/ia.md:131] [src: brand-directions/_kit/screens.js:83-536] [src: brand-directions/cooker/kit-skin.js:44-86]\n\n### Never\n\n- On buttons, inside the thing being made, on tables of numbers, in Need your yes decisions, over a brand's own photos. [src: brand-directions/_shared/product-model.md:142]\n- On a card. Cards belong to the brand; Seeti speaks around them. [src: brand-directions/_shared/product-model.md:207]\n- As a second character. Seeti scolds ideas, never people, and calls the founder boss at most once a week.\n- In money, privacy, apologies or anything a person must sign.\n\n### How Seeti behaves\n\n- Errors boil over, and Seeti says it is its own fault. Faces come only from the eight: unimpressed, impatient, proud, delighted, thinking, shocked, sheepish, sleepy.\n- Chilli covers under ten percent of any screen, and text on chilli is ink, never white.\n- One motion at a time in the product, at real moments only, all inside the reduced motion check.\n- Voice: Short sentences, often two words. Never more than two sentences per line. Commands go to the food, offers go to you: Back on the stove. Want another batch? Seeti counts: whistles, specials, batches, weeks.\n\n| Pose | Motion in the product |\n|---|---|\n| idle | breathe, 3.2 s loop |\n| celebrate and heart | toot, 0.26 s, three times |\n| error | hop, 0.32 s, once |\n\n[src: brand-directions/cooker/kit-skin.js:35-43]\n\n### Lines Seeti may say and never says\n\n| May say | Never says |\n|---|---|\n| Give me your store link. Then step back from the stove. | I posted it for you. |\n| Cooking your store. Nobody lifts my lid. | Your sales went up 30 percent. |\n| Three whistles. Five specials. Go on, pick. | You missed a week. Shame. |\n| Ooh, good taste. More like that, coming up. | Hurry, only two hours left. |\n| That draft is undercooked. Another batch? | Your store is just like every other store. |\n| Order ticket's written. Pass it on. | Three more like that appear. |\n| Kitchen's clean. See you Monday. | No sign in needed. |\n| That one boiled over. My fault. | I guarantee results. |\n| One pot at a time this week. | You burnt it. |\n| Cold week taken. Your run is safe. | Connect your accounts and I will run your ads. |\n\n[src: brand-directions/docs2/data/dirs.json]\n\n### Areas as props\n\n| Area | Seeti's prop |\n|---|---|\n| Social posts | a phone |\n| Ads | a blank sandwich board |\n| Website | a shop window |\n| AI search | a magnifying glass |\n| Email and WhatsApp | a tiffin carrier |\n\nSeeti's own parts are the whistle, the long red handle and the chilli red oven mitts. Files: cooker/svg/mode-social.svg, mode-ads.svg, mode-website.svg, mode-ai.svg, mode-email.svg. Props show in marketing, the reveal and celebrations; in the product the area is a small dot and a word. [src: brand-directions/cooker/system.md:95]\n\n### Growing with the product\n\n| Version | What Seeti gains | File | Tag |\n|---|---|---|---|\n| v1 | the slots above, as adviser | cooker/svg/hero.svg | New |\n| v2 | the server with a tray | cooker/svg/pose-tray.svg | New |\n| v3 | the plate checker | cooker/svg/pose-plate.svg | New |\n| v4 | running within rules: no prop defined yet | not drawn | New |\n\nNew abilities arrive as new props or poses, never a new character. [src: brand-directions/BRIEF.md:241-249]\n\n### Sound\n\nSix cues, off on a first visit, one switch in Settings: logo cooker/snd/logo.mp3, heart cooker/snd/cue-heart.mp3, ready cooker/snd/cue-ready.mp3, handoff cooker/snd/cue-handoff.mp3, error cooker/snd/cue-error.mp3, caught cooker/snd/cue-caught.mp3. The longer line files are for books, the site and marketing and never play in the product. [src: brand-directions/cooker/kit-skin.js:88-91]",
  "How we do it": "1. Need a new moment? Add the prop, pose or line to brand-directions/cooker/system.md first.\n2. Draw it from the one source: every pose and face is traced from one flat hero, cooker/img/hero.png, into cooker/svg/. Never redraw the body by hand, never use a raw generated image.\n3. Add the file to the art key in brand-directions/cooker/kit-skin.js and any words to the words key, 12 words at most.\n4. Place it only in a named slot from the table above, at its size.\n5. Check it at the slot size; under 120 px it must read as the small mark.\n6. Switch the character layer off and check the screen still works.\n7. Turn on reduced motion and check Seeti holds still.",
  "Numbers": "| Number | Definition | Today | Where measured | Status |\n|---|---|---|---|---|\n| Screens with Seeti | of 45 kit screens | 18 | _kit/screens.js | Measured |\n| Slots | named places Seeti may sit | 7 in the model, 12 placements in the kit | product model, kit | Measured |\n| Seeti over a control | instances where Seeti covers a control | not measured | headless audit with the layer on and off | Proposed |\n| Character switch off rate | share of people who turn the layer off | not measured | product event | Proposed |",
  "Open": "1. Seeti's reading line for AI answers names ChatGPT, Gemini, Perplexity and Claude, and the model bans vendor names in front of a founder. Rewrite it? Proposal: Yes: \"Asking AI answers about you.\"\n2. The system file sets ticket labels in uppercase, which the writing rules ban. Keep tickets for books only? Proposal: Yes, order tickets and uppercase stay out of the product.\n3. The model puts the first heart in a 120 px celebration; the kit draws it at 40 px inside the toast. Which? Proposal: The first heart at 120 px once, later hearts in the toast.\n4. Should the character layer start on or off for a new brand? Proposal: On, with sound off, since the slots never block a control."
 }
}