{
 "id": "4.14",
 "title": "Asset library",
 "department": "Brand",
 "department_slug": "brand",
 "direction": {
  "id": "dog",
  "name": "Fetch"
 },
 "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/dog",
  "markdown": "https://handbook.joinsquareup.com/brand/asset-library/dog.md",
  "json": "https://handbook.joinsquareup.com/brand/asset-library/dog.json"
 },
 "other_directions": [
  {
   "id": "bee",
   "name": "Buzz",
   "json": "https://handbook.joinsquareup.com/brand/asset-library/bee.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 Fetch file in one yard, so nobody redraws anything",
  "points": [
   {
    "icon": "box",
    "text": "Marks, ten poses, eight faces, five props, six sounds and eight voice lines."
   },
   {
    "icon": "gear",
    "text": "Every frame is drawn from one rig, so Fetch is the same dog everywhere."
   },
   {
    "icon": "check",
    "text": "Below 120 pixels use the head mark; at 16 pixels the heavier one."
   },
   {
    "icon": "warn",
    "text": "Never edit a built SVG or page by hand; change _src and rebuild."
   },
   {
    "icon": "flag",
    "text": "Still missing: final illustrator art and a sticker for design partners."
   }
  ],
  "stat": {
   "value": "54",
   "label": "screen kit captures per theme"
  },
  "decide": "Who draws the final art and the sticker, and when?",
  "mood": "building"
 },
 "sources": [
  "brand-directions/dog/ folder listing: char.svg, char-mark.svg, char-mark-16.svg, svg/, snd/, img/kit/, _shots/, _src/",
  "brand-directions/dog/system.md s1, s4",
  "brand-directions/dog/kit-skin.js art, fonts",
  "brand-directions/dog/snd/sound-log.json, voice.json, voice-options.json",
  "brand-directions/_shared/sample/img/ listing",
  "brand-directions/docs2/data/dirs.json, entry dog",
  "brew origin/main a559de6: public/assets/, public/icons/, public/sfx/, public/loader.js, public/index.html:1, 6, tools/sfx/cues.json",
  "memory brand-directions-2026-10-25, brew-sounds, brew-loader"
 ],
 "open_questions": [
  "Who draws the final art and the sticker? Proposal: one illustrator after the pick, working from the rig, with a sticker sheet in the same brief.",
  "Where do brand assets live once picked: brand-directions/dog or brew/public? Proposal: the rig stays in brand-directions, and only the built SVGs and mp3 files are copied into brew/public."
 ],
 "parts": {
  "Answer": "Every file Fetch needs, the marks, ten poses, eight faces, five props, two growth frames, six sounds, eight voice lines, two fonts and the screen kit, lives in brand-directions/dog/ and is drawn from one rig, and this is where each one is and how to use it.",
  "Today": "All paths below are relative to brand-directions/ unless they start with brew/.\n\n### Marks and the hero\n\n| File | What it is | Use it for | Source |\n|---|---|---|---|\n| dog/char.svg | The master, the drop: sitting beside a card, tail going | Idle slot, hero, stage | [src: brand-directions/dog/kit-skin.js art] |\n| dog/char-mark.svg | The head alone, both green ears, tongue out | Everything below 120 px: Today corner, app icon, avatar, sign off | [src: brand-directions/dog/system.md s4] |\n| dog/char-mark-16.svg | The mark with heavier lines | Favicon at 16 px | [src: brand-directions/dog/system.md s4] |\n| dog/svg/construct.svg | Construction lines: head circle, body pear, eye line | Drawing reference only | [src: brand-directions/dog/art.html a1] |\n| dog/svg/silhouette.svg | The silhouette test | Checking a new pose | [src: brand-directions/dog/art.html a1] |\n\n### Poses, faces, props and growth\n\n| Files | What they are | Source |\n|---|---|---|\n| dog/svg/pose-01.svg to pose-10.svg | Paste, reading, the drop, heart, Make it, hand off, caught up, error, celebrate, wait | [src: brand-directions/dog/art.html a2] |\n| dog/svg/expr-eager, delighted, focused, curious, distracted, sheepish, proud, sleepy .svg | The eight faces | [src: brand-directions/dog/art.html a3] |\n| dog/svg/mode-social, mode-ads, mode-website, mode-ai, mode-email .svg | Frisbee, megaphone, front door, phone, morning paper | [src: brand-directions/dog/art.html a4] |\n| dog/svg/grow-doer.svg, grow-reporter.svg | Doer and reporter, both Later | [src: brand-directions/dog/art.html a5] |\n\n### Product slots, as the kit skin maps them\n\n| Slot | File | Source |\n|---|---|---|\n| corner | dog/char-mark.svg | [src: brand-directions/dog/kit-skin.js art] |\n| idle | dog/char.svg | [src: brand-directions/dog/kit-skin.js art] |\n| wait | dog/svg/pose-02.svg | [src: brand-directions/dog/kit-skin.js art] |\n| drop | dog/svg/pose-03.svg | [src: brand-directions/dog/kit-skin.js art] |\n| heart | dog/svg/pose-04.svg | [src: brand-directions/dog/kit-skin.js art] |\n| handoff | dog/svg/pose-06.svg | [src: brand-directions/dog/kit-skin.js art] |\n| caught | dog/svg/pose-07.svg | [src: brand-directions/dog/kit-skin.js art] |\n| error | dog/svg/pose-08.svg | [src: brand-directions/dog/kit-skin.js art] |\n| celebrate | dog/svg/pose-09.svg | [src: brand-directions/dog/kit-skin.js art] |\n| empty | dog/svg/pose-10.svg | [src: brand-directions/dog/kit-skin.js art] |\n| smallBelow | 120 px, below which only the mark is used | [src: brand-directions/dog/kit-skin.js art] |\n\n### Sound and voice\n\n| File | What it is | Source |\n|---|---|---|\n| dog/snd/logo.mp3 | Sonic logo, 2.2 s | [src: brand-directions/dog/snd/sound-log.json] |\n| dog/snd/cue-heart, cue-ready, cue-handoff, cue-error, cue-caught .mp3 | The five cues | [src: brand-directions/dog/snd/sound-log.json] |\n| dog/snd/line-paste, line-read, line-drop, line-heart, line-handoff, line-caught, line-error .mp3 | Seven moment lines | [src: brand-directions/dog/snd/sound-log.json] |\n| dog/snd/line-tagline.mp3 | The tagline read | [src: brand-directions/dog/snd/sound-log.json] |\n| dog/snd/voice-option-1 to 3 .mp3 | The three voice tries. Option 1 kept as Fetch voice | [src: brand-directions/dog/snd/voice-options.json; brand-directions/dog/snd/voice.json] |\n| dog/snd/sound-log.json | Every prompt and line, dated 25 October | [src: brand-directions/dog/snd/sound-log.json] |\n\n### Fonts, tokens and templates\n\n| File or source | What it is | Source |\n|---|---|---|\n| Google Fonts: Grandstander 500 to 800, Commissioner 400 to 700 | Product and book faces | [src: brand-directions/dog/kit-skin.js fonts] |\n| Google Fonts: Shantell Sans | Hand notes, books only | [src: brand-directions/dog/system.md s1] |\n| dog/kit-skin.js | Product tokens, art slots, motion keyframes and words for the screen kit | [src: brand-directions/dog/kit-skin.js] |\n| dog/skin.css | Book tokens: night yard and kraft | [src: brand-directions/dog/system.md s1] |\n| dog/stage.js | The audition stage animation, generated from char.svg | [src: brand-directions/dog/system.md s4] |\n| dog/img/kit/dark and light | 54 screen kit captures in each theme | [src: brand-directions/dog/img/kit] |\n| dog/_shots/ | Page and mark checks, such as char-mark-24.png and the 400 px home | [src: brand-directions/dog/_shots] |\n| dog/_src/rig/fetch.py, poses.py, mark.py | The one rig and the pose list that write every frame | [src: brand-directions/dog/system.md s4] |\n| dog/_src/build.py, md2html.py, stage.py, render.mjs, kitshots.mjs | Page builder, system page, stage, PNG checks, kit captures | [src: brand-directions/dog/system.md s4] |\n| _shared/sample/img/monsoon, chai, jasmine, trio, ad-rain, hands | The sample candle store pictures, always labelled Sample | [src: brand-directions/_shared/sample/img] |\n\n### What the live product has today\n\n| File | What it is | Source |\n|---|---|---|\n| brew/public/assets/brew-mark.svg | Today's mark and favicon | [src: brew/public/index.html:1] |\n| brew/public/icons/icon-192.png, icon-512.png, maskable-512.png, apple-touch-icon.png | Today's app icons | [src: brew/public/icons] |\n| brew/public/assets/agent-*.svg | Area agent shapes | [src: brew/public/assets] |\n| brew/public/sfx/*.mp3 | 29 product cues | [src: brew/tools/sfx/cues.json; memory brew-sounds] |\n| brew/public/loader.js | The one loader on every wait | [src: brew/public/loader.js:1; memory brew-loader] |\n| Inter and Caveat | Today's fonts | [src: brew/public/index.html:6] |",
  "Tomorrow": "| Item | Version | Tag |\n|---|---|---|\n| The rig stays the source of every product frame. PNGs are only for checks and marketing | v1 | Stays |\n| A final illustrator pass redraws the master, the mark and the ten poses from the rig | v1 | New |\n| Fetch's mark becomes the favicon and app icons at 16, 192 and 512 px, maskable included | v1 | Changes |\n| brew-mark.svg and the agent shapes as characters go. The area colours stay as tags | v1 | Goes |\n| Fetch's five cues join brew/public/sfx, levelled by the product rule | v1 | New |\n| The loader takes Fetch's wait pose or mark | v1 | Changes |\n| A sticker for design partners, from the hop or the mark. Not designed yet | v1 | New |\n| A carry prop for doer and a chart for reporter go into the rig | v2 and v3 | New |\n| The four losing directions' assets are archived and never used | v1 | Goes |",
  "How we do it": "1. Find a file here first. If it does not exist, write the need in dog/system.md, then draw it from the rig.\n2. Use the mark below 120 px, the full figure at 120 px and above.\n3. Never edit a built SVG or page by hand. Change _src and rebuild:\n\n```bash\ncd /Users/param/Documents/ChatGPT/brand-directions/dog/_src\npython3 rig/poses.py && python3 build.py && node render.mjs\n```\n\n4. Every invented example uses the candle store pictures with a visible Sample label.\n5. Never ship a voice file or cue into the product without levelling it by small speaker loudness.",
  "Numbers": "| Metric | Definition | Where measured | Status |\n|---|---|---|---|\n| Frames from the rig | Share of Fetch images drawn from the rig, not by hand or by an image model | dog/svg against dog/_src/rig/poses.py | Proposed, target all |\n| Missing slots | Product slots with no Fetch file | kit-skin.js art against the slot list | Proposed |",
  "Open": "1. Who draws the final art and the sticker? Proposal: one illustrator after the pick, working from the rig, with a sticker sheet in the same brief.\n2. Where do brand assets live once picked: brand-directions/dog or brew/public? Proposal: the rig stays in brand-directions, and only the built SVGs and mp3 files are copied into brew/public."
 }
}