| name | design |
| description | cli-jaw Design workspace: create, preview, run, and export design pages from the right sidebar. Covers panel UX, direct-write workflow, artifact lifecycle, wireframe generation, design system, and Open Design adapter. |
| metadata | {"openclaw":{"emoji":"๐จ","requires":{"bins":["cli-jaw"]}}} |
Design Workspace
cli-jaw Design workspace skill. Design tab์ ์ค๋ฅธ์ชฝ sidebar์์ Files, Diff,
Browser์ ๋๊ธ์ธ launcher/tab์ด๋ค.
Prerequisites
cli-jaw serve running (UI preview, API routes).
jaw design CLI commands (file-first, server fallback).
Modular References
| File | When to Read | What It Covers |
|---|
references/panel-structure.md | Design tab UI ๊ตฌํ | Claude Design style toolbar + viewport, page selector dropdown |
references/page-lifecycle.md | page CRUD, storage | create/list/show/path/edit, dashboard store layout, project-key |
references/direct-write.md | agent artifact ์์ | safety boundary, file states, watcher, rescan, concurrent access |
references/run-and-preview.md | design run, preview | run state machine, preview sandbox URL, snapshot/restore |
references/export-handoff.md | export, sidebar handoff | export to project, Diff/Browser tab handoff, conflict policy |
references/wireframe-guide.md | ์์ด์ดํ๋ ์ ์์ฑ | artifact ๊ตฌ์กฐ, template/catalog, design system reference |
references/api-and-cli.md | API route, CLI command | full route list, jaw design CLI summary, file-first pattern |
references/open-design-adapter.md | Open Design ์ฐ๋ (v2+) | adapter status/list/import, vendor ์ํจ, optional |
Core Rules
Panel Structure (Claude Design style)
toolbar:
left: reveal pageDir / export / reload from disk
center: page selector dropdown ("ChatCLI Wireframes ยท 2 pages")
right: zoom / annotate / edit / share with agent
body:
full viewport preview (iframe or raw HTML)
3-column ๋ถํ , Canvas/Source/History ํญ, run composer ์์.
์์ธ: references/panel-structure.md.
Safety Boundary
- ๊ถํ ๋จ์: selected
pageDir ํ๋.
- dashboard store root ์ ์ฒด ๋
ธ์ถ ์ ํจ.
- projectDir์ export ๋๋ง touch.
realpath confinement, symlink reject (v1).
- artifact write allowlist:
artifact.html, prompt.md, page.json, assets/*.
- ์์ธ:
references/direct-write.md.
Concurrent Access
50๊ฐ managed instance (ํฌํธ 3457~3506)๊ฐ ๊ฐ์ dashboard design store๋ฅผ ๊ณต์ ํ๋ค.
Notes์ baseRevision 409 conflict ํจํด. ์์ธ: references/direct-write.md.
Right Sidebar Integration
- Design์ multi-instance kind (Files/Browser์ฒ๋ผ ์ฌ๋ฌ tab ๊ฐ๋ฅ).
- Launcher click: ์ฒซ ๋ฒ์งธ ์ด๋ฆฐ Design tab focus. ์์ผ๋ฉด create.
- per-tab state:
{ pageId?: string; zoom?: number }.
- ์์ธ:
references/panel-structure.md.
v1 Scope
page CRUD + preview + direct-write ๊ฐ์ง + run (Design tab Run button -> selected
instance agent -> artifact ์์ฑ) + export ์ ๋ถ v1์ ํฌํจ.
Shipped v1 Surface (2026-07-04)
CLI (file-first; the store on disk is the source of truth)
jaw design list [--json] # pages across projects
jaw design create --title <t> [--json] # new page (project key snapshot at create)
jaw design show <page-id> [--json] # page.json summary
jaw design path <page-id> [--json] # pageDir / artifact / prompt local paths
jaw design rescan [<page-id>] [--json] # re-read disk state into page.json
jaw design edit <page-id> [--editor ...] # open pageDir in an editor
jaw design export <page-id> [--overwrite] # copy artifact into the project dir
jaw design files read <page-id> <relpath>
jaw design files write <page-id> <relpath> --stdin
jaw design snapshots <page-id> list|restore <snapshot-id>
jaw design catalog list [--json]
There is NO jaw design run in v1. Run is the Design tab toolbar button: it
takes a server-side before-snapshot (hard gate), then enqueues a generation
prompt into the CURRENTLY SELECTED instance's queue.
Agent contract for a "Design run request" message
When you receive a chat message titled Design run request:
- Read the Brief first (
prompt.md path given in the message) โ it holds the
page requirements.
- Your ONLY write target is the given pageDir. Write
artifact.html in place
(direct file write or jaw design files write <page-id> artifact.html --stdin).
Allowlist: artifact.html, prompt.md, page.json, assets/*.
- Preview is CSP-locked (
script-src 'none'): produce STATIC, self-contained
HTML/CSS. No <script>, no external CDN references โ inline styles/SVG only.
- Do not write anywhere else; do not export unless asked. The user reviews the
result live in the Manager Design tab (watcher/Reload picks it up).
- A before-snapshot was already taken server-side; restore points live under
the page
snapshots/ directory (keep-last-20).
Invariants
page.json is the source of truth; concurrent writers use baseRevision
and get 409 on conflict โ rescan, merge, retry.
- HTTP mutator routes (
POST/PATCH/PUT under /api/dashboard/design) require
the Electron desktop identity header. Agents do NOT call mutator routes โ
use the file-first CLI/direct writes above.
realpath confinement + symlink reject inside pageDir.