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

vercelBot commented Jul 5, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
specReadyReadyPreview, CommentJul 5, 2026 2:41am

Request Review

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation size/m labels Jul 5, 2026
@os-zhuangos-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 mainJul 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 freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/mskip-changesetPR 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

@os-zhuang@claude