Skip to main content

From a Confusing Brief to UX/UI Part 1 of 7

From a Confusing Brief to the UX/UI Document

~7 min read Updated Aug 3, 2026

The client's message

Two weeks, and you don't get to decide them. The project arrives in a single message, dashed off one evening.

"Hey! So let me explain the idea. I have a border collie, Nina, and I take her out every day to the park down the street. The problem is I know maybe two people there, and she's bored out of her mind.

I'd like to make a kind of Tinder for dogs: you see the dogs nearby, if you like one you match and arrange a walk together. I looked at Pedigreender but it doesn't convince me, and anyway that's more for breeding — I really mean friendship between dogs.

Then I'd need chat, notifications when a match comes in, maybe a map of the parks, and reviews so you know who you're dealing with. Oh, and the dog's profile with photos, obviously.

For the style, something fun, modern, easy to use — I don't want anything complicated. I don't really know which screens are needed or what style to pick, I'll trust you on that.

One thing though: in two weeks I'm meeting someone who might put money into this, and I'd like to show them something they can touch, not slides. A friend told me that with AI these days you can do this stuff in a weekend, is that true?"

Reread the second-to-last line: in two weeks. That's the part that drives everything else. There's no time for a finished app — what's needed is a demo that opens on a phone and can be navigated. The problem is that in this message, there isn't a single decision yet.

Why you can't delegate this part

The obvious move is to copy the message, paste it into Claude Code, and ask for the app.

But Claude Code executes decisions, it doesn't make them. The app's main gesture is missing, which feature comes first is missing, the screens are missing. If you don't give it those, it won't stop to ask you for them — it fills them in on its own, quietly, and you find out by looking at the result.

The brief you need before the prompt

Forwarding the questions to the client and waiting for them to answer doesn't work: they don't have the answers, and they're not supposed to. That's exactly why they came to you. Ask them one thing only — what result the user wants to get, the job the app needs to get done for them. You decide the rest.

The questions to ask yourself are always the same, and they live in a template. Eighteen fields, not just the colors: it's everything you need to get to the structure and the prompt you'll give Claude Code.

The product

  • Main goal of the app
  • Who uses it: users and roles
  • Problem to solve
  • Main action the user performs

Features and screens

  • Must-have features
  • Secondary features
  • Screens needed
  • Path between screens · user flow
  • Data and content of each screen

The aesthetic direction

  • Visual style
  • Color palette
  • Tone of voice for the copy
  • Aesthetic references
  • Emotions to convey
  • Elements to avoid

The constraints

  • Platform and device
  • Technical constraints
  • What the demo needs to show
Clear Brief — the AI Pratika asset The eighteen fields above, ready to fill in: first to make clear to yourself where the project is headed, then as questions to put to the client. Answer them and you get the document Claude Code is missing. Open the asset

Can it really be done in a weekend? The demo, yes — but the weekend starts here, not with the message.

Sources Interaction Design Foundation Figma Miro

PawSoul's spec sheet

Eighteen fields filled in for PawSoul, and this is what comes out of it — at a glance: product, flow, ten screens, decisions made, criteria.

docs/ux-ui.md — at a glance

PawSoul

Matches compatible dogs and cats in the same neighborhood and gets their owners to set up a real meetup.

User
Someone with a dog or cat who takes the same walks every day and doesn't know anyone to take them with.
Job to be done
Find someone compatible nearby, so the walk becomes an encounter.
Main action
Review a card and say yes or no. Everything else comes after that gesture.

3 The user's journey

From opening the app to the first meetup set: it's the loop the app exists to make repeat.

  1. 1 Open
  2. 2 Sign up
  3. 3 Register the pet
  4. 4 Cards
  5. 5 Match
  6. 6 Set the meetup

5 The ten screens

Showcase public, explains the product
Sign up
Log in
Registration of the pet, step by step
Dashboard new matches, activity
Cards the main action: yes or no
Match
Profile of the pet
Conversation
bottom bar, from every screen
Cards Match Dashboard Personal area

before logging in inside the app

4 The MVP

In

  • Pet registration
  • Cards to swipe through
  • Species and distance filters
  • Adoption-only filter
  • Match and conversation
  • Public profile
  • Personal area

Out, and written down so it doesn't get lost

  • Meetup map
  • Reviews
  • Verified vaccinations
  • Push notifications
  • Groups
  • Tools for shelters
  • Payments

6 The six closed decisions

On the left, what the client asked for in two ways that don't fit together. On the right, the choice that resolves it.

  • Playful but not childish Deferred: becomes the four tests below
  • Lots of features but simple MVP Cut for breadth, not depth
  • Like Tinder but not Tinder Keep the gesture, change everything else
  • The pet or the owner? The pet's profile, conversation between people
  • Cats now or later? Now: it's the data model, not a feature
  • Adoption separate or inside the app? A toggle on the profile plus a filter

7 The four style tests

The style isn't chosen here. These are the questions that, whichever direction you take, will need a yes.

  • Put next to Tinder, would someone with no stake in the project say it's a different product?
  • Does it hold up the word "playful" without suggesting a kids' app?
  • Are the animal photos the content, or have they become the background for something else?
  • At 390px is it still itself, or has it folded into something generic?

8 The states, and what goes in them

None of these is a blank screen. It's the part that gets forgotten first, and the first thing the user runs into.

Deck finished
"You've seen everyone nearby," plus a way to widen the distance and reload.
No matches
What to do to get some, with a link to the cards.
Empty conversation
A suggestion on how to start, not a blank space.
Loading
Skeleton shapes matching the real content. Never a spinner in the middle.
Network error
Recoverable, with a retry button.
First launch
The deck is never empty: there are already profiles in the area chosen during registration.

9 Responsive

Design at 390px and scale up. Every tappable element at least 44px tall.

10 Done when

The flow runs start to finish on a phone, and no link leads to a screen that doesn't exist.

PawSoul's full UX/UI document: product, flow, screens, MVP, decisions, criteria.

The real document: docs/ux-ui.md

The sheet above is the summary. This is the document: a Markdown file, to be saved in the project as docs/ux-ui.md. From here on, it's what you'll reference in every prompt.

docs/ux-ui.md Ten sections, ten screens, six decisions made
docs/ux-ui.md
# PawSoul — UX/UI document

## 1. The product in three lines
PawSoul matches compatible dogs and cats in the same neighborhood and gets
their owners to set up a real meetup. You sign up, register your pet, and
swipe through other pets' cards: when a like is mutual, a conversation opens.
A profile can be marked as available for adoption, in which case it also
appears to people looking for a pet to give a home to.

## 2. Problem, user, job to be done
Problem: you take your pet out every day, to the same places, and you don't
know anyone to do it with. The pet gets bored, and so does the person.
User: someone with a dog or a cat who goes out (or would like their pet to
socialize) fairly regularly, and doesn't have a network of people around
them. Secondary: someone looking to place a pet — a shelter, a private
owner.
Job to be done: "when I go out with my pet alone, I want to find someone
compatible nearby, so the walk turns into a meetup."
Stated assumption: the number that matters is how many meetups get set up
in chat, not how many people sign up. The client didn't know how to measure
it; we measure it as "conversations where a date or place gets proposed."

## 3. The main action and the flow
Main action: judge a card and say yes or no. It's the one gesture the app
exists to make you repeat; everything else follows from it.
Flow: open → sign up → register your pet → see the cards → like → get a
match → message → propose a meetup.
The gesture works in two equivalent ways: dragging and two buttons under the
card. Anyone who doesn't get the drag gesture should still be able to use
the app.

## 4. MVP: in and out
In: pet registration, cards to swipe through, filters by species and
distance, adoption-only filter, matches, conversation, public pet profile,
personal area with multiple pets of your own.
Out, and written down so it doesn't get lost: map of meetups, reviews
between users, verified vaccination badges, push notifications, groups,
management tools for shelters, any kind of payment.
Cutting rule: cut in width, not depth. Fewer features, but no reachable
screen left half-built.

## 5. The screens (ten) and how you reach them
1. Public landing — explains the product and leads to sign-up. From there
   you can also reach the profiles of pets up for adoption.
2. Sign-up — name, email, password, city. Leads to pet registration.
3. Log in — email and password. Leads to the dashboard.
4. Pet registration — step by step: owner, species, basic info, personality
   (different questions for a dog and a cat), photo, what they're looking
   for, and the finished profile shown as the result.
5. Dashboard — where you land once logged in: active pet, new matches,
   recent activity, shortcut to the cards.
6. Cards — the main screen. Deck, filters, full-screen match reveal.
7. Matches — list of conversations. On large screens, list and conversation
   side by side.
8. Conversation — on phone it's its own screen, reached from the list.
9. Public pet profile — from the cards, from a match, from the landing.
10. Personal area — my pets, add one, search preferences, settings, log
    out.
Navigation: on phone, a four-item bottom bar (cards, matches, dashboard,
profile). On large screens, a top bar.

## 6. Decisions made
- Fun but not childish → deliberately deferred, turned into the criteria in
  point 7. We give up being able to start designing right away.
- Lots of features but simple → cut in width, every screen stays fully
  built. We give up features the client had in mind; they stay written down
  in the "out" list.
- Like Tinder but not Tinder → keep the gesture, change everything else.
  The model is friendship, not pairing up. We lose nothing except the
  shortcut of copying the look too.
- The pet or the owner → the pet is the profile, the owner is the user, and
  the conversation happens between people. We lose a bit of charm, we gain
  a chat that makes sense.
- Cats now or later → now, because it's the data model, not a feature. We
  lose time now, less than it would cost to redo it later.
- Adoption → a toggle on the profile plus a filter, not a role and not a
  management panel. We give up shelter tools: if they're ever needed,
  that's the next project.

## 7. Criteria for the aesthetic direction
The visual style is NOT chosen in this document. Whichever direction is
picked, it has to pass these four tests:
1. Not-Tinder at a glance: placed next to Tinder, someone outside the
   project should say it's not the same product.
2. Fun without childish: it has to hold up the word "fun" without making
   anyone think of a kids' app. The client is showing it to a possible
   investor.
3. The pet photos are the content: no treatment that reduces them to
   background, covers them, or shrinks their space. The face is the
   product.
4. Recognizable at 390px: on a phone it has to stay itself, not fall back
   to a generic look.
References given by the client: Tinder (for how it works, not how it
looks), Duolingo (for the tone). To avoid: banking apps, grays, small text.

## 8. States
Every screen has its three states — empty, loading, error — and none of
them is a blank screen.
- Cards, deck finished: "you've seen everyone nearby," plus a way to widen
  the distance and reload.
- Matches, no matches: what to do to get some, with a link to the cards.
- Conversation with no messages: a suggestion on how to start, not an empty
  space.
- Loading: shapes matching the form of the real content, never a spinner
  in the middle of the screen.
- Network error: recoverable, with a retry button.
- First launch: the deck is never empty on first access — there's already
  a set of profiles in the area chosen during registration.

## 9. Responsive
Designed at 390px and scaled up. On phone: bottom bar, full-width deck,
matches list and conversation on two separate screens. On large screens:
top bar, list and conversation side by side, centered deck with filters to
the side. Every tappable element is at least 44px tall. No screen is
allowed to turn generic as it scales up.

## 10. Completion criteria
- The main flow can be walked start to finish on a phone: sign-up, pet
  registration, cards, match, conversation.
- No link in the demo leads to a screen that doesn't exist or is empty.
- All ten screens have real content, not placeholder text.
- Registration asks different questions for a dog and for a cat.
- The species filter and the adoption filter work and change the deck.
- All three states exist on every screen.
- The chosen look passes the four tests from point 7.

It's shorter than the client's message and infinitely more executable.

Now you know what you're building. What's left is choosing what to build it with: the right tools for these ten screens, not for just any project. That's part 2.

From a Confusing Brief to a Complete UX/UI A vague brief becomes a navigable app. Product Ad From a Single Photo A photo becomes an animated ad, no code required. Get Claude to Watch Your Videos Claude watches your videos and turns them into text. Higgsfield Inside Claude Code Generate images and video while you code in Claude Code. Turn a Loom Recording Into a Web Page A screen recording becomes a web page, no code. Vertical Shorts With NotebookLM Your sources become a vertical short. Luxury Landing Pages on Lovable A luxury landing page from a single prompt. Excalidraw Running Locally Excalidraw free on your computer, no code. Mistral OCR in Your Workflow Extract text from documents with Mistral OCR. Claude SEO in the Terminal 25 free SEO skills inside Claude Code. Google Search Console inside Claude Code Search Console data inside your terminal. Claude Code Routines Claude working on its own, computer off. Clone a Landing Page in React With v0 Clone a real landing page into React code. Context Economy With Claude Work light and don't burn through Claude's limits. From Prompt to Self-Improving Skill Claude skills that learn from your mistakes. From NotebookLM to Canva: Presentations NotebookLM slides, finally editable in Canva. The Map for Understanding Every AI Tool 12 categories for placing any AI tool. Transparent PNGs With ChatGPT Real transparency, not a fake checkerboard. Animated Infographics With Gemini Infographics that loop, animated with Gemini. Market Research With Deep Research Deep Research as your market analyst. Get Cited by AI Search Engines (AEO) Become a source that ChatGPT and Perplexity cite.