Problem or Motivation
When you open a new conversation, OpenWork shows a centered composer under the heading "What should we build?" — but nothing else. New users (and returning ones facing a blank canvas) get no hint about what the agent can do or how to phrase a good first request.
Every comparable desktop client fills this gap with prompt suggestions: Claude Code Desktop shows curated "prompt suggestions", and ChatGPT / Codex show example starter prompts on their empty state. OpenWork has a rotating placeholder in the input, but no clickable starting points.
Proposed Solution
Render a small row of starter prompt suggestion chips directly beneath the centered composer on the empty conversation state (only while the composer is empty). Clicking a chip populates the composer with a fuller prompt and focuses the input — it does not auto-send, so the user can edit before submitting.
- 4 generic, build-oriented suggestions that match the "What should we build?" framing: Explain this codebase, Build a feature, Fix a bug, Write tests.
- Each chip shows a short localized label + icon; clicking seeds the composer with the fuller localized prompt.
- Suggestions hide as soon as the composer has content (typed or seeded), matching the empty-state-only behavior in other clients.
Feasibility
Frontend-only. The empty-state composer already lives in apps/electron/src/renderer/components/app-shell/ChatDisplay.tsx (showCenteredEmptyComposer). Seeding the composer reuses the existing controlled-draft channel (onInputChange → inputValue), the same path drafts already use — no backend/qwen-code changes. Content is static and localized via i18n. No new IPC, no new persistence.
Acceptance criteria (what the CDP assertion checks)
- On the empty conversation, a
[data-testid="empty-suggestions"] surface renders with 4 chips.
- The composer starts empty.
- Clicking the first chip populates the composer with a prompt that is longer than the chip's short label (i.e. it seeds the prompt, not just the title).
- The suggestions surface disappears once the composer has content.
Alternatives Considered
- Auto-send on click — rejected; seeding + letting the user edit is safer and matches Claude Code Desktop / ChatGPT.
- Workspace-type-aware or dynamically generated suggestions — deferred; a small static, localized set is lower-risk and fully frontend.
Additional Context
Source references: Claude Code Desktop "prompt suggestions"; ChatGPT / Codex empty-state example prompts. Part of the autonomous desktop-feature parity loop (loop-bot).
Problem or Motivation
When you open a new conversation, OpenWork shows a centered composer under the heading "What should we build?" — but nothing else. New users (and returning ones facing a blank canvas) get no hint about what the agent can do or how to phrase a good first request.
Every comparable desktop client fills this gap with prompt suggestions: Claude Code Desktop shows curated "prompt suggestions", and ChatGPT / Codex show example starter prompts on their empty state. OpenWork has a rotating placeholder in the input, but no clickable starting points.
Proposed Solution
Render a small row of starter prompt suggestion chips directly beneath the centered composer on the empty conversation state (only while the composer is empty). Clicking a chip populates the composer with a fuller prompt and focuses the input — it does not auto-send, so the user can edit before submitting.
Feasibility
Frontend-only. The empty-state composer already lives in
apps/electron/src/renderer/components/app-shell/ChatDisplay.tsx(showCenteredEmptyComposer). Seeding the composer reuses the existing controlled-draft channel (onInputChange→inputValue), the same path drafts already use — no backend/qwen-code changes. Content is static and localized via i18n. No new IPC, no new persistence.Acceptance criteria (what the CDP assertion checks)
[data-testid="empty-suggestions"]surface renders with 4 chips.Alternatives Considered
Additional Context
Source references: Claude Code Desktop "prompt suggestions"; ChatGPT / Codex empty-state example prompts. Part of the autonomous desktop-feature parity loop (
loop-bot).