Loading...
Loading...
Nén TOÀN BỘ UI/UX của một frontend (React/Next.js/Vue + Tailwind) vào MỘT file HTML tự chứa, chạy offline, dữ liệu placeholder viết cứng, dưới ngưỡng dung lượng (mặc định 5MB): port từng màn hình sang vanilla JS với class Tailwind chép nguyên văn từ JSX, biên dịch Tailwind bằng CHÍNH config của dự án, nhúng font + subset icon + logo, có panel chọn màn/trạng thái và khung điện thoại cho chế độ mobile, verify bằng Playwright. Dùng khi user nói 'snapshot UI', 'gói toàn bộ giao diện vào 1 file html', 'bản demo giao diện offline', 'mockup tĩnh có dữ liệu mẫu', 'nén UIUX dự án', 'gửi giao diện cho người không chạy được app', hoặc invoke /ui-snapshot. KHÁC hallmark/redesign (thiết kế MỚI) và playwright-verify (chỉ chụp/đo app đang chạy) — ui-snapshot TÁI HIỆN giao diện hiện có, không cần backend/đăng nhập.
npx skill4agent add rheinmir/setup ui-snapshotfe/.html/ui-snapshotđọc HẾT JSX các trang → liệt kê màn + trạng thái + overlay → viết app.js (router hash, state, data cứng, 1 hàm/màn, nhánh desktop/mobile) → build.py (Tailwind config thật + font + icon subset + asset data URI) → shot.mjs verify → sửa → publish| Field | Required? | Ý nghĩa | |
|---|---|---|---|
| In | thư mục frontend ( | có | để dùng |
| In | danh sách trang/route | có (tự dò | phạm vi "toàn bộ UI" |
| In | ngưỡng dung lượng | không (5 MB) | |
| In | font chính / logo / banner | không | |
| Out | | có | file duy nhất, offline |
| Out | báo cáo: số màn, KB, ảnh verify, lệch so app thật | có | trung thực, liệt kê chỗ giả lập |
app.jsbg-${x}D(-9)"search"build.pymd:shot.mjsNO ERRORS--max-mbbuild.pysips -Z| Step | Type | Inputs | Action | Outputs/exit | Failure/next |
|---|---|---|---|---|---|
| W01 | deterministic | | Dò route + layout + component dùng chung; đọc | danh sách màn + token | không Tailwind → FB1 |
| W02 | judgment | JSX từng trang | Đọc HẾT từng trang (RULE-01), ghi lại mọi trạng thái/overlay/nhánh mobile | inventory màn × trạng thái | — |
| W03 | effect | inventory | Tạo | app.js | — |
| W04 | deterministic | app.js + template | | file HTML + KB | lỗi Tailwind → xem stderr; >max → FB3 |
| W05 | deterministic | file | | ảnh + | lỗi → sửa app.js, lặp W04 |
| W06 | effect | file | Đặt vào repo (vd | báo cáo | — |
| ID | Kind | Guard | Hành vi | Skip / failure | Rejoin |
|---|---|---|---|---|---|
| B01 | conditional | trang có dead-code UI (state không có đường vào) | vẫn port nhưng chỉ mở qua panel demo, ghi chú "legacy" | — | W03 |
| B02 | conditional | app có devtool page tối/khác design system | port bằng inline style như bản gốc | — | W03 |
| B03 | recovery | chế độ mobile trên màn rộng lệch layout | khung | — | W05 |
build.pyshot.mjsNO ERRORSfe/python3 scripts/build.py --fe <fe> --src assets-copy --out /tmp/t.htmlassets/app-skeleton.jsassets/template.htmlnode scripts/shot.mjs /tmp/t.html /tmp/shots d-home=home m-home=homeNO ERRORS