Answer
Fetch is a scruffy, happy dog who fetches this week's marketing ideas and drops them at your feet, and this bible settles how it looks, acts, talks and grows so anyone can draw or write it without asking.
Today
Fetch is one of five characters in the audition. It is not picked and not in the live product.
Who it is
| Part | Fetch | Source |
|---|---|---|
| Name | Fetch, placeholder. Alternates Scruff and Bounder | brand-directions/dog/brand.html b6 |
| One line | A scruffy, happy dog who fetches this week's marketing ideas and drops them at your feet | brand-directions/dog/system.md s0 |
| Tagline | This week's ideas, fetched | brand-directions/dog/system.md s0 |
| Five words a founder uses | Scruffy dog fetches marketing ideas | brand-directions/dog/system.md s0 |
| Edge | Over eager. Brings back a bit too much, gets distracted by anything shiny, then comes back with the good one. The flaw is its own, never aimed at you | brand-directions/dog/system.md s0 |
| Want | For you to throw it again. A pick means another run. It wants the next throw, not praise | brand-directions/dog/character.html c1 |
| Flaw | It cannot bring back only five. It sneaks one more thing in, usually its own ball. The product holds the line at five | brand-directions/dog/character.html c1 |
| Running joke | Every Monday the tennis ball sneaks in among the five picks. Friday, caught up, Fetch gets to keep it | brand-directions/dog/character.html c0 |
| Signature gesture | Sits beside a card it just dropped at your feet, tail wagging, tongue out to one side, left brow a touch higher | brand-directions/dog/system.md s4 |
| World | The yard: the grass between your door and the street. Your store is the house, the week is a walk | brand-directions/dog/brand.html b3 |
What it never does
- Never sulks, whines, looks hurt, scared or begging. Errors make it sheepish, ears down brand-directions/dog/system.md s4
- Never pretends it posted, sent or scheduled anything brand-directions/dog/character.html c1
- Never names a real rival or a real person brand-directions/dog/character.html c1
- Never covers a button, a card or a product photo brand-directions/dog/character.html c1
- Never brings back something made up. Every pick has a source brand-directions/dog/character.html c1
- No bones, no food, no mess. It fetches ideas, it does not eat them brand-directions/dog/system.md s4
- No other dogs, no puppies, no supporting cast in the product, ever brand-directions/dog/system.md s4
How it is drawn
| Part | Rule | Source |
|---|---|---|
| Head | A circle about 1.1 times the width of the body, the biggest shape. Eye line just above the middle | brand-directions/dog/art.html a1 |
| Ears | Left ear floppy and outside the head, right ear standing with its tip folded forward. Both tennis ball green, both in every frame, lopsided on purpose | brand-directions/dog/system.md s4 |
| Crown | Three scruff tufts, uneven, the middle one tallest, every frame | brand-directions/dog/character.html c2 |
| Body | A pear sitting on the grass line, two front legs, one haunch peeking out on the right | brand-directions/dog/character.html c2 |
| Collar and tag | Green collar, a plain round tag with nothing written on it | brand-directions/dog/character.html c2 |
| Tail | From the right haunch, thick at the base, ending in a green tuft. Usually wagging with three small arcs | brand-directions/dog/character.html c2 |
| Face | Two ink dot eyes, left brow a touch higher, a big rounded nose, a w mouth, tongue out to one side when happy | brand-directions/dog/character.html c2 |
| Colour | Green #aee32f on ears, collar, tail tip and ball only. Coat #fff4dc, ink #16180f, tongue #ff9a85 | brand-directions/dog/art.html a1 |
| Finish | One outline weight for the body, a lighter one for inner lines. Flat fills, matte, no shine, no gradient, no soft shadow | brand-directions/dog/system.md s4 |
| Small mark | The head alone: both green ears, bigger eyes and nose, tongue out, every line thickened. A card in the mouth turned to mush at 24 pixels in testing, so the card stays in the full figure | brand-directions/dog/character.html c2 |
| Mark sizes | char-mark.svg below 120 pixels, char-mark-16.svg at 16 pixels with heavier lines | brand-directions/dog/system.md s4 |
| Silhouette test | Black out every pose. Floppy ear left, folded ear right, tufted tail. If the mood still reads, the pose works | brand-directions/dog/art.html a1, a6 |
Eight expressions
| Face | Look | Moment | File | Source |
|---|---|---|---|---|
| Eager | Tongue out, left brow up. The default | Greeting, the drop | dog/svg/expr-eager.svg | brand-directions/dog/character.html c3 |
| Delighted | Eyes shut in a grin | A heart, the first win | dog/svg/expr-delighted.svg | brand-directions/dog/character.html c3 |
| Focused | Squint, tongue tip out | Making something | dog/svg/expr-focused.svg | brand-directions/dog/character.html c3 |
| Curious | Head tilt, ear up | The three questions | dog/svg/expr-curious.svg | brand-directions/dog/character.html c3 |
| Distracted | Eyes sliding off to something shiny | Rival ads | dog/svg/expr-distracted.svg | brand-directions/dog/character.html c3 |
| Sheepish | Ears down, a wobbly mouth | Our errors | dog/svg/expr-sheepish.svg | brand-directions/dog/character.html c3 |
| Proud | Eyes shut, chin up | Handed off | dog/svg/expr-proud.svg | brand-directions/dog/character.html c3 |
| Sleepy | Half lids | Caught up, Friday | dog/svg/expr-sleepy.svg | brand-directions/dog/character.html c3 |
Ten poses, tied to moments
The status is for the moment in the product, from the shared product model.
| # | Pose | Moment | Slot and size | Moment status | File | Source |
|---|---|---|---|---|---|---|
| 1 | Sitting tall, eyes on the ball | Paste your store | Paste screen, 120 px | Today | dog/svg/pose-01.svg | brand-directions/dog/character.html c4 |
| 2 | Nose down at the shopfront | Reading your store | The read, 120 to 180 px | Today | dog/svg/pose-02.svg | brand-directions/dog/character.html c4 |
| 3 | The drop, a card at your feet | This week's picks land | Today corner, the Monday email | Next | dog/svg/pose-03.svg | brand-directions/dog/character.html c4 |
| 4 | Hop, paws up | Heart, first win | Celebration, 120 px | Next | dog/svg/pose-04.svg | brand-directions/dog/character.html c4 |
| 5 | Pencil in mouth, paw on the draft | Make it, while it makes | Making wait, 96 px | Today | dog/svg/pose-05.svg | brand-directions/dog/character.html c4 |
| 6 | Card in mouth to a real hand | Hand it off | Handed off screen | Next | dog/svg/pose-06.svg | brand-directions/dog/character.html c4 |
| 7 | Curled up with the ball | You're caught up | Caught up, 120 px | Next | dog/svg/pose-07.svg | brand-directions/dog/character.html c4 |
| 8 | Ears down by a torn card | Error, cap reached | 96 px | Today | dog/svg/pose-08.svg | brand-directions/dog/character.html c4 |
| 9 | Jump catch, ears flying | First win complete | Celebrations and reels | Next | dog/svg/pose-09.svg | brand-directions/dog/character.html c4 |
| 10 | Head tilt, ball in the air | Waiting, empty states | Empty states, 96 px | Today | dog/svg/pose-10.svg | brand-directions/dog/character.html c4 |
Props for the five areas
Areas are tags and filters. The prop shows only with the area tag and never replaces it. The tennis ball is Fetch's own and belongs to the running joke.
| Area | Prop | Question it answers | File | Source |
|---|---|---|---|---|
| Social posts | The frisbee | What should I post this week? | dog/svg/mode-social.svg | brand-directions/dog/character.html c9 |
| Ads | The megaphone | What ad should I run next? | dog/svg/mode-ads.svg | brand-directions/dog/character.html c9 |
| Website | The front door | Why are visitors not buying? | dog/svg/mode-website.svg | brand-directions/dog/character.html c9 |
| AI search | The phone, sniffed | Does ChatGPT recommend me? | dog/svg/mode-ai.svg | brand-directions/dog/character.html c9 |
| Email and WhatsApp | The rolled morning paper | How do I get customers back? | dog/svg/mode-email.svg | brand-directions/dog/character.html c9 |
Growth
| Stage | What Fetch carries | Status in the books | File | Source |
|---|---|---|---|---|
| Adviser | Ideas and drafts, dropped at your feet. You decide and ship | Today | dog/char.svg | brand-directions/dog/character.html c10 |
| Doer | With your yes, finished work to the place you said, inside your rules, with undo | Later | dog/svg/grow-doer.svg | brand-directions/dog/character.html c10 |
| Reporter | A paw at a chart of how it went, and next week's picks learn from it | Later | dog/svg/grow-reporter.svg | brand-directions/dog/character.html c10 |
Week one to month six
| When | What Fetch knows | How it behaves | A line | Source |
|---|---|---|---|---|
| Week one | Your store link and the read | Bouncy, a little too much. Explains itself once | I sniffed round your store. Brought back five. Tell me which ones you like. | brand-directions/dog/character.html c5 |
| Week two | Which picks you hearted and left | Brings more of what you liked | You liked the rain ones. Found two more. | brand-directions/dog/character.html c5 |
| Month one | Your house rules and the thing you never post | Stops bringing what you said no to, and says so | No discount ideas this week. You told me to leave those. | brand-directions/dog/character.html c5 |
| Month three | Your rhythm, who ships for you | Calmer. Fewer words, same tail | Five picks. Two are ready for your editor. | brand-directions/dog/character.html c5 |
| Month six | A lot of the scent, exportable Later | Waits at the door on Mondays | Monday. You know the drill. Ball is in there somewhere. | brand-directions/dog/character.html c5 |
- Progress is what you did and what Fetch knows about your store, never your sales. The scent meter never empties because you were away brand-directions/dog/character.html c5
How it talks, by mood
Two lines per mood from the ten in the character book. The full set lives in c6.
| Mood | Lines | Source |
|---|---|---|
| Eager | Five picks at your feet. Most are drafted. / I brought the rain one first. It smelled best. | brand-directions/dog/character.html c6 |
| Delighted | Good pick. Fetching more like it. / The editor has it. Tail going. | brand-directions/dog/character.html c6 |
| Focused | Chewing on the caption. One second. / Looking at public ads only. | brand-directions/dog/character.html c6 |
| Sheepish | Lost the scent on that one. Your work is safe. / That number is a guess. Confirm it before you use it. | brand-directions/dog/character.html c6 |
| Curious | Which of these do you handle? / One thing you never want to post? | brand-directions/dog/character.html c6 |
| Sleepy | That is the week. Nap time. / Rest day taken. No walks missed. | brand-directions/dog/character.html c6 |
| Never says | I posted it for you. Scheduled for 9am. Your sales went up after my picks. You missed a walk. I waited all day. Don't break your streak. Only two hours left to claim your read. Works for any store. Your rival is beating you. Trust me. Bad owner. | brand-directions/dog/system.md s5 |
- Voice: an adult in their late twenties, bright, bouncy and warm, quick, never breathy, whispery or childlike. Option 1 of three was kept and saved as Fetch voice brand-directions/dog/snd/voice.json
Animation
| State | Motion | Timing | Source |
|---|---|---|---|
| Idle | Body bobs 4 px, tilts 1 degree each way, tail wags | Bob 2.8 s ease in out, tail 0.45 s alternate, minus 10 to 8 degrees | brand-directions/dog/system.md s1 |
| React | One head tilt and back, ears follow by 60 ms | 280 ms in, 400 ms hold, 280 ms out | brand-directions/dog/character.html c7 |
| Celebrate | One hop up 14 px with a stretch, land with a squash | 1 s, once in the product | brand-directions/dog/motion.html v1 |
| Wait | Slow breathing scale about 2 percent, nose dips while reading | 4 s loop. The kit sniff runs 1.4 s | brand-directions/dog/character.html c7; brand-directions/dog/kit-skin.js motion |
| Error | Small head shake, three beats, then still | 2.4 s, once | brand-directions/dog/system.md s1 |
- The books disagree on small values: the head tilt is 7 degrees in c7 and 8 in motion v1, celebrate 1.1 s and error 2.6 s in the motion demos. The system file wins, so 1 s and 2.4 s brand-directions/dog/character.html c7; brand-directions/dog/motion.html v1; brand-directions/dog/system.md
The art pipeline
- One rig in dog/_src/rig/fetch.py draws head, face rig, ears, tufts, three stances, sit, lie and the play bow, the tail and every prop as flat vector brand-directions/dog/character.html c11
- dog/_src/rig/poses.py sets each frame and writes char.svg, the two marks and every file in svg/. dog/_src/rig/mark.py holds the small mark brand-directions/dog/system.md s4; brand-directions/dog/_src/rig
- dog/_src/render.mjs renders frames to PNG at 512 and 24 pixels for checking, big, small and in silhouette brand-directions/dog/character.html c11
- No image model drew Fetch, so it is the same dog in every frame brand-directions/dog/art.html
- No independent critic has scored Fetch yet. It was built after round 3 on 25 October brand-directions/book/content/f.js f-1.side-by-side
Tomorrow
These rules hold if Fetch is picked.
| Item | Version | Tag |
|---|---|---|
| Fetch is an add on layer in fixed slots: Today corner 40 to 56 px, reading 120 to 180 px, reveal 160 px, empty and error 96 px, celebrations 120 px, brief page sign off 32 px. Remove it and every control still works | v1 | New |
| Below 120 px only the small mark, at 16 px the heavy mark | v1 | New |
| Never on buttons, inside the thing being made, on tables of numbers, in Need your yes decisions or over a brand's photos | v1 | New |
| One motion at a time, then rest. Nothing moves while you tap, type or scroll. Reduced motion holds every pose still | v1 | New |
| Poses 3, 4, 6, 7 and 9 arrive with the Monday drop, first win, one Hand it off button and caught up | v1 | New |
| The dial: full voice for hearts, picks and caught up. Own our errors in one line. Off for money, privacy, apologies and anyone upset, where a person writes by name | v1 | New |
| The ball joke counts what the founder did, never a result | v1 | New |
| Doer: the same dog carries finished work where you said, after your yes, with undo | v2 | New |
| Reporter: a paw at the chart of how it went | v3 | New |
| Runs ads within your rules: a new prop, never a new character. Not drawn yet | v4 | New |
| Final art redrawn by an illustrator from the one rig | v1 | Changes |
| The name Fetch stays a placeholder until confirmed | v1 | Stays |
How we do it
- Before drawing anything new, write the moment, prop or line in dog/system.md first.
- Add one line to dog/_src/rig/poses.py: stance, lean, tilt, ear swing, eyes, brows, mouth, tail angle, wag, what sits in front.
- A new prop is drawn in dog/_src/rig/fetch.py with the same outline weight and the same three colours.
- Render and check big, at 24 px and in silhouette:
cd /Users/param/Documents/ChatGPT/brand-directions/dog/_src
python3 rig/poses.py
node render.mjs
python3 build.py
- Check against the do and do not list: a card, a ball or a pick in every frame, both green ears, no shine, no sad dog, no second dog.
- Run the writing checker on any new line, then rebuild the pages from _src, never the built page.
Numbers
| Metric | Definition | Where measured | Status |
|---|---|---|---|
| Ten second test | Share of founders who name the dog and the job after ten seconds on the home page | Five or more founder sessions | Proposed |
| Icon recall | Share who can describe the small mark a day after seeing it at 24 px | Same sessions | Proposed |
| Bad day test | Share who would forgive the error line read aloud | Same sessions | Proposed |
| Bar score | Score against the eleven point bar in BRIEF.md 3.8 by a critic who did not build it | A review file in dog/ | Proposed, not run |
Open
- Is Fetch sharp enough after a generic friendly dog was turned down before? Proposal: run the ten second and bad day tests with five founders and a critic round against the bar before the pick.
- Is Fetch the final name, given it cannot be owned as a trademark alone? Proposal: keep Fetch as the character name, since it is never the product name, and hold Scruff as the alternate.
- Who redraws the final art? Proposal: brief one illustrator from the rig and this bible after the pick, keeping the rig as the source for every product frame.
- Which motion values win where the books disagree? Proposal: the system file values, 1 s celebrate and 2.4 s error, and fix the motion page to match.