Skip to content

docs(audits): Studio package-create UX dogfood — browser walkthrough findings#2609

Merged
os-zhuang merged 1 commit into
mainfrom
claude/showcase-chrome-extension-ux-qs9gx7
Jul 5, 2026
Merged

docs(audits): Studio package-create UX dogfood — browser walkthrough findings#2609
os-zhuang merged 1 commit into
mainfrom
claude/showcase-chrome-extension-ux-qs9gx7

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

What

Adds docs/audits/2026-07-studio-package-create-ux-dogfood.md — a browser-driven UX audit of the "create a new package and build in it" first-run journey in Studio, run against the showcase example (objectstack dev --ui --seed-admin, real Chromium over CDP, vendored console pin-matched at 7782698 so findings are not stale-bundle artifacts).

Journey exercised

Home → Build an app → Studio landing → + 新建软件包 (com.example.repairs) → create object Repair Ticket → picklist field with values → Save draft → Changes → Publish → create record → Create app Repair Center → nav item bound to object → Publish → open the app from the launcher as an end user. Also exercised both sides of the read-only gate on com.example.showcase (ADR-0057 D10) and the Automations/Access pillars.

The loop closes with zero code and no dead ends. Findings concentrate on:

  1. P1 — read-only packages accept edit gestures client-side (Add field mutates the canvas, New object opens the form) and fail only at server write, with error copy that cites an internal ADR path.
  2. P1 — field API name doesn't follow the label before first save (Status stored as field_2 forever), unlike object/app identifiers which do auto-suggest.
  3. P1 — one-click Publish with no confirm, and the Changes panel has no field-level detail to review.
  4. P2 — mixed-language screens (English chrome with embedded Chinese strings and vice versa).
  5. P2 — new-package wizard ergonomics: no ID suggestion from the name (none at all for CJK names), silent keystroke stripping, disabled button with no inline format hint.
  6. P2 — new apps scaffold no navigation from existing objects.
  7. P3 — duplicated "Actions" column in Studio records grid, Create/New verb inconsistency, bare 8s "Loading…" boot, picklist editor input truncation.

Each finding carries a concrete fix suggestion; most are console-side (objectui), the read-only error copy is framework-side.

🤖 Generated with Claude Code

https://claude.ai/code/session_01DHQc5BdGhTzPfazex3vWdt


Generated by Claude Code

…findings

Full first-run authoring loop driven in a real Chromium against the vendored
console (pin-matched 7782698): create package -> object -> picklist field ->
record -> app -> nav -> publish -> end-user app. Loop closes; findings ranked:
late read-only gating with ADR-path error copy, field API name not following
label, one-click publish with thin Changes panel, mixed-language screens,
new-package wizard ID ergonomics, no nav scaffolding on app create, plus grid
and copy polish.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DHQc5BdGhTzPfazex3vWdt
@vercel

vercel Bot commented Jul 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jul 5, 2026 2:41am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation size/m labels Jul 5, 2026
@os-zhuang os-zhuang added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Jul 5, 2026 — with Claude
@os-zhuang os-zhuang marked this pull request as ready for review July 5, 2026 06:28
@os-zhuang os-zhuang merged commit ab72d62 into main Jul 5, 2026
17 of 18 checks passed
@os-zhuang os-zhuang deleted the claude/showcase-chrome-extension-ux-qs9gx7 branch July 5, 2026 06:28
os-zhuang added a commit that referenced this pull request Jul 5, 2026
…d rejection (#2625)

* fix(metadata-protocol): user-facing copy for writable_package_required rejection

The rejection message is surfaced verbatim as a Studio toast, but its copy
was written for developers — it cited an internal ADR path as the remedy.
Rewrite the sentence as end-user remediation (switch to a writable package
in the package selector, or create one); the ADR pointer moves to a docs
property on the error. code/status/packageId are unchanged, so API
consumers and the ADR-0070 golden regression are unaffected.

Found by the Studio package-create UX dogfood (#2609, tracking #2615).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DHQc5BdGhTzPfazex3vWdt

* chore: retrigger CI

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DHQc5BdGhTzPfazex3vWdt

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/m skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants