BuilderIO / BuilderIO/agent-native

Assets: brand kit Setup guide tells you to upload references on a page that has no upload control

Open Beginner friendly
#4,945 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
4.8k
Forks
449
Avg merge
10h 24m
Merged PRs (30d)
883

Description

# Assets: the brand kit Setup guide tells you to upload references on a page that has no upload

**Version:** `@agent-native/core` 0.178.1, Assets template installed as
`apps/brand-assets`, four-app workspace on Vercel.

**What happens.** A new user creating their first brand kit lands on
`/brand-kits//settings` and reads the Setup guide, whose first
recommendation is:

> **Upload reference assets.** Mark 3-5 strong examples as References so
> Analyze brand can learn palette and visual traits from real work, not
> guesses.

There is no upload control on that route. Searching the whole file for an
upload affordance returns nothing: no `type="file"`, no drop handler, no call
to the upload endpoint. The user reasonably concludes the feature is missing or
broken.

**Where the control actually is.** `app/routes/brand-kits.$id.tsx`, the kit
detail page one level up, which has the upload button, a hidden file input and
a drag-and-drop area, all posting to `/api/assets/upload`. The only other
upload surface in the app is the template editor
(`app/routes/templates.$templateId.tsx`) for skeletons and per-slot references.

**Why it misleads.** The guide is rendered as four static list items in
`app/routes/brand-kits.$id_.settings.tsx` (around lines 323 to 377), with no
links on any of them. Two of the four refer to fields that are on that page,
"Write a specific style description" and "Use custom instructions for hard
constraints". The other two refer to controls that are not: references are on
the kit page, and presets are on
`app/routes/brand-kits.$id_.presets.$presetId.tsx`. Nothing distinguishes the
two kinds, so an item that is actionable here looks the same as one that is
not.

**Expected.** Either make each guide item a link to the surface that performs
it, or render the guide on the kit page where three of the four controls live,
or mark the off-page ones as navigation. Any of the three removes the dead end;
the links are the smallest change and also make the guide useful rather than
decorative.

**Impact.** This is the first screen a user meets when setting up their first
brand kit, and its first instruction cannot be followed where it is written.
Reference assets are what "Analyze brand" learns the palette and visual traits
from, so a user who gives up here gets brand DNA inferred from guesses instead
of real work, which is precisely the failure the guide is warning about.

**Related, and the reason this was hard to resolve unaided.** Asked where the
upload button was, the app's own agent (Sonnet 5) answered that the References
tab at `/library/` has a drag-and-drop zone and that `/brand-kits/...` is a
legacy URL. Neither is true: the Library workspace contains no file input, no
drop handler and no upload call in 3,756 lines, and its References tab is
populated by moving existing assets into the reference role. The one route the
agent dismissed as legacy is the only one with the control. A user following
the agent's answer ends up further from the feature than when they started.

**Workaround.** Use `/brand-kits/` without the `/settings` suffix, or hand
the agent a URL and let `import-asset-from-url` ingest the image as a reference.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the guide in app/routes/brand-kits.$id_.settings.tsx around lines 323–377, then inspect app/routes/brand-kits.$id.tsx and app/routes/brand-kits.$id_.presets.$presetId.tsx to map each item to its surface. Done means the off-page guide items provide navigation or links, so every recommendation can be followed from the setup guide without a dead end.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
78/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.