{
 "id": "4.14",
 "title": "Asset library",
 "department": "Brand",
 "department_slug": "brand",
 "direction": {
  "id": "bee",
  "name": "Buzz"
 },
 "branded": true,
 "status": "draft",
 "owner": "Param",
 "last_verified": "2026-10-26",
 "holds": "Every logo, character pose, sound, font and template file, where it lives, how to use it",
 "urls": {
  "html": "https://handbook.joinsquareup.com/brand/asset-library/bee",
  "markdown": "https://handbook.joinsquareup.com/brand/asset-library/bee.md",
  "json": "https://handbook.joinsquareup.com/brand/asset-library/bee.json"
 },
 "other_directions": [
  {
   "id": "dog",
   "name": "Fetch",
   "json": "https://handbook.joinsquareup.com/brand/asset-library/dog.json"
  },
  {
   "id": "raccoon",
   "name": "Scoop",
   "json": "https://handbook.joinsquareup.com/brand/asset-library/raccoon.json"
  },
  {
   "id": "octopus",
   "name": "Ocho",
   "json": "https://handbook.joinsquareup.com/brand/asset-library/octopus.json"
  },
  {
   "id": "cooker",
   "name": "Seeti",
   "json": "https://handbook.joinsquareup.com/brand/asset-library/cooker.json"
  }
 ],
 "tldr": {
  "headline": "Every Buzz file in one hive, so nobody redraws or re-records",
  "points": [
   {
    "icon": "box",
    "text": "Marks, twelve poses, eight faces, five area props, five cues and eight voice lines."
   },
   {
    "icon": "gear",
    "text": "Every frame comes from buzz.py, the only way to make a new one."
   },
   {
    "icon": "warn",
    "text": "Gaps: no illustrator art, no sticker, no app icon set, no re-levelled cues."
   },
   {
    "icon": "check",
    "text": "Use the 16 pixel mark under 20 pixels, with no wing and one eye."
   },
   {
    "icon": "link",
    "text": "Every invented example uses the sample candle store, labelled Sample."
   }
  ],
  "stat": {
   "value": "54",
   "label": "screen shots per theme folder"
  },
  "decide": "Who makes the final Buzz art and app icons if Buzz is picked?",
  "mood": "building"
 },
 "sources": [
  "brand-directions/bee/ folder listing, svg/, snd/, img/kit/, _src/, _shots/",
  "brand-directions/bee/system.md s1, s4",
  "brand-directions/bee/kit-skin.js art, sounds, fonts",
  "brand-directions/bee/character.html c3, c4, c9, c10, c11",
  "brand-directions/bee/motion.html v0",
  "brand-directions/_shared/sample/img/",
  "brew origin/main public/assets/, public/icons/, public/sfx/, public/index.html:6",
  "memory brew-sounds"
 ],
 "open_questions": [
  "Who makes the final Buzz art and app icons if Buzz is picked? Proposal: one paid illustrator redraws the master, mark and twelve poses from the rig, then the rig is matched to the redraw.",
  "Should the books' screen shots in img/kit be kept after the pick? Proposal: keep them as history, regenerate from the real product once skinned."
 ],
 "parts": {
  "Answer": "Every Buzz file that exists, where it lives and how to use it, next to the assets today's product ships, so nobody redraws or re-records what is already there.",
  "Today": "### Character masters and marks\n\n| File | What it is | Use |\n|---|---|---|\n| bee/char.svg | The master, hovering and waving | Hero, stage, idle slot above 120 pixels [src: brand-directions/bee/kit-skin.js art.idle] |\n| bee/char-mark.svg | Small mark: ball, two stripes, kinked feeler, one wing, two eyes | Today corner, app icon, avatar, anything 20 to 120 pixels [src: brand-directions/bee/system.md s4] |\n| bee/char-mark-16.svg | 16 pixel mark, no wing, one eye | Favicon, anything under 20 pixels [src: brand-directions/bee/system.md s4] |\n| bee/svg/sheet.svg | Model sheet: construction, three quarter views, silhouettes, mark ladder | Reference for any illustrator [src: brand-directions/bee/svg; brand-directions/bee/character.html c2] |\n\n### Poses\n\n| File | Moment | Product slot |\n|---|---|---|\n| bee/svg/pose-idle.svg | Idle | Today header above 120 pixels [src: brand-directions/bee/character.html c4] |\n| bee/svg/pose-paste.svg | Paste | First screen [src: brand-directions/bee/kit-skin.js art.paste] |\n| bee/svg/pose-reading.svg | The read | Reading your store, 120 to 180 pixels [src: brand-directions/bee/kit-skin.js art.wait] |\n| bee/svg/pose-drop.svg | The Monday drop waggle | The reveal, 160 pixels [src: brand-directions/bee/kit-skin.js art.drop] |\n| bee/svg/pose-heart.svg | Heart | Heart celebration [src: brand-directions/bee/kit-skin.js art.heart] |\n| bee/svg/pose-make.svg | Make it | Making wait [src: brand-directions/bee/kit-skin.js art.make] |\n| bee/svg/pose-handoff.svg | Hand it off | Brief copied [src: brand-directions/bee/kit-skin.js art.handoff] |\n| bee/svg/pose-caught.svg | Caught up | Caught up screen [src: brand-directions/bee/kit-skin.js art.caught] |\n| bee/svg/pose-error.svg | Error | Errors and cap reached [src: brand-directions/bee/kit-skin.js art.error] |\n| bee/svg/pose-celebrate.svg | Celebrate | First win, 120 pixels [src: brand-directions/bee/kit-skin.js art.celebrate] |\n| bee/svg/pose-empty.svg | Empty | Empty states [src: brand-directions/bee/kit-skin.js art.empty] |\n| bee/svg/pose-wait.svg | Wait | Marketing and stage only, never a product spinner [src: brand-directions/bee/character.html c4] |\n\n### Expressions, modes and growth\n\n| File | What it is | Use |\n|---|---|---|\n| bee/svg/expr-happy.svg, expr-focus.svg, expr-grin.svg, expr-curious.svg, expr-oops.svg, expr-sleepy.svg, expr-delight.svg, expr-determined.svg | The eight faces | One per moment, held [src: brand-directions/bee/svg; brand-directions/bee/character.html c3] |\n| bee/svg/pose-mode-social.svg, pose-mode-ads.svg, pose-mode-website.svg, pose-mode-ai.svg, pose-mode-email.svg | The five area props: camera, trumpet flower, shop front, speech bubble, envelope | Art and marketing for an area. Never as the area tag itself [src: brand-directions/bee/svg; brand-directions/bee/character.html c9] |\n| bee/svg/pose-grow-doer.svg, pose-grow-reporter.svg | Approve stamp, scorecard | Later only, labelled Later [src: brand-directions/bee/svg; brand-directions/bee/character.html c10] |\n\n### Sound\n\n| File | What it is | Use |\n|---|---|---|\n| bee/snd/logo.mp3 | Sonic logo, 2.6 s | End cards, stage, first open [src: brand-directions/bee/motion.html v0] |\n| bee/snd/cue-heart.mp3, cue-ready.mp3, cue-handoff.mp3, cue-error.mp3, cue-caught.mp3 | Five cues | Heart, read ready, brief copied, error, caught up [src: brand-directions/bee/kit-skin.js sounds] |\n| bee/snd/line-paste.mp3, line-read.mp3, line-drop.mp3, line-heart.mp3, line-handoff.mp3, line-caught.mp3, line-error.mp3, line-tagline.mp3 | Eight lines in Buzz voice | Stage, marketing, onboarding once [src: brand-directions/bee/snd/sound-log.json] |\n| bee/snd/voice-option-1.mp3 to voice-option-3.mp3, voice-options.json, voice.json | The three voice tries and the kept one, option 1 | Reference. New lines use the voice in voice.json [src: brand-directions/bee/snd/voice.json] |\n| bee/snd/sound-log.json | Every prompt and line used | Re-making or extending a sound [src: brand-directions/bee/snd/sound-log.json] |\n\n### Type, tokens and templates\n\n| File | What it is | Use |\n|---|---|---|\n| Shrikhand, Parkinsans from Google Fonts | Display and body faces | `kit-skin.js` fonts link [src: brand-directions/bee/kit-skin.js fonts] |\n| Playpen Sans from Google Fonts | Hand notes | Books and marketing only [src: brand-directions/bee/system.md s1] |\n| bee/kit-skin.js | Product tokens, art slots, motion and every product line | The screen kit and tomorrow's product skin [src: brand-directions/bee/kit-skin.js] |\n| bee/skin.css | Book tokens | Books, site, marketing [src: brand-directions/bee/system.md s1] |\n| bee/img/kit/dark, bee/img/kit/light | 54 skinned screen shots in each theme folder | Reviews and decks [src: brand-directions/bee/img/kit] |\n| bee/stage.js | Buzz for the audition stage, ids prefixed | Stage only [src: brand-directions/bee/system.md s4] |\n| bee/_src/rig/buzz.py, bee/_src/rig/poses.py | The rig and pose code that draws every frame | The only way to make a new frame [src: brand-directions/bee/character.html c11] |\n| bee/_src/*.html, bee/_src/build.py | Sources of the books | Edit these, never the built pages [src: brand-directions/bee/system.md s4] |\n| _shared/sample/img/monsoon.jpg, chai.jpg, jasmine.jpg, ad-rain.jpg, hands.jpg | The sample candle store | Every invented example, with a Sample label [src: brand-directions/_shared/sample/img] |\n\n### Today's product assets\n\n| File | What it is |\n|---|---|\n| brew/public/assets/brew-mark.svg | The old mark, used as the tab icon [src: brew/public/index.html:1] |\n| brew/public/icons/icon-192.png, icon-512.png, maskable-512.png, apple-touch-icon.png | App icons [src: brew/public/icons] |\n| brew/public/assets/agent-performance.svg, agent-storefront.svg | Agent shapes [src: brew/public/assets] |\n| brew/public/sfx/*.mp3 | 29 product cues [src: memory brew-sounds; brew/public/sfx] |\n| Inter, Caveat from Google Fonts | Today's product type [src: brew/public/index.html:6] |\n\n### Gaps\n\n- No final illustrator art: every frame is code drawn from the rig. [src: brand-directions/bee/character.html c11]\n- No designed sticker yet. [src: brand-directions/book/content/f2.js f-10 small-things]\n- No app icon PNG set for Buzz in the product sizes. [src: brand-directions/bee folder listing]\n- No Buzz versions of the five cues levelled to the product's own LUFS targets. [src: brand-directions/bee/motion.html v0; brew/tools/sfx/cues.json]",
  "Tomorrow": "- v1, New: on the pick, `bee/char-mark.svg` and `char-mark-16.svg` replace `brew-mark.svg` and the app icons are rendered from the mark on pollen yellow.\n- v1, Changes: final art is redrawn by an illustrator from the rig, and the rig is updated so every new frame still comes from code.\n- v1, New: the five cues are re-levelled and copied into `brew/public/sfx` at the matching cue names.\n- v1, Goes: Inter and Caveat in the product.\n- v1, Stays: the sample candle store images for every invented example.\n- v2, New: doer props drawn live when posting exists. v3, New: reporter props when How it went exists.\n- v4, Stays: no new character files, ever. Only props and poses.",
  "How we do it": "1. Look here first. Reuse a file before making one.\n2. New frame: write it into `bee/system.md`, add it to the rig, render, check at 512 and 24 pixels.\n3. New sound: reuse first, then one prompt in the same family, logged in `snd/sound-log.json`.\n4. Rebuild the book pages from `_src`, never edit built pages.\n\n```sh\ncd /Users/param/Documents/ChatGPT/brand-directions/bee/_src && python3 build.py\n```",
  "Numbers": "| Metric | Definition | Where measured | Status |\n|---|---|---|---|\n| Frames on rig | Share of Buzz frames drawn by buzz.py | bee/svg compared with the rig output | Proposed, target all |\n| Unused files | Assets not referenced by kit-skin.js, a book or the stage | A grep over brand-directions | Proposed |",
  "Open": "1. Who makes the final Buzz art and app icons if Buzz is picked? Proposal: one paid illustrator redraws the master, mark and twelve poses from the rig, then the rig is matched to the redraw.\n2. Should the books' screen shots in img/kit be kept after the pick? Proposal: keep them as history, regenerate from the real product once skinned."
 }
}