prototype – skill Thiết kế & UI cho agent AI
Xây dựng prototype dùng một lần để hoàn thiện thiết kế — một ứng dụng terminal chạy được để trả lời câu hỏi về trạng thái/logic nghiệp vụ, hoặc nhiều biến thể UI khác biệt hoàn toàn có thể chuyển đổi từ cùng một route.
Cài skill prototype bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/prototype-6b8c5.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /prototype – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/prototype-6b8c5.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $prototype – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/prototype-6b8c5.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /prototype – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/prototype-6b8c5.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /prototype – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
Prototype
When to Use
Use when this workflow matches the user request: Build a throwaway prototype to flesh out a design — a runnable terminal app for state/business-logic questions, or several radically different UI variations toggleable from one route.
_Source: [mattpocock/skills](https://github.com/mattpocock/skills) (MIT)._
A prototype is throwaway code that answers a question. The question decides the shape.
Pick a branch
Identify which question is being answered — from the user's prompt, the surrounding code, or by asking if the user is around:
- "Does this logic / state model feel right?" → [LOGIC.md](LOGIC.md). Build a tiny interactive terminal app that pushes the state machine through cases that are hard to reason about on paper.
- "What should this look like?" → [UI.md](UI.md). Generate several radically different UI variations on a single route, switchable via a URL search param and a floating bottom bar.
The two branches produce very different artifacts — getting this wrong wastes the whole prototype. If the question is genuinely ambiguous and the user isn't reachable, default to whichever branch better matches the surrounding code (a backend module → logic; a page or component → UI) and state the assumption at the top of the prototype.
Rules that apply to both
1. Throwaway from day one, and clearly marked as such. Locate the prototype code close to where it will actually be used (next to the module or page it's prototyping for) so context is obvious — but name it so a casual reader can see it's a prototype, not production. For throwaway UI routes, obey whatever routing convention the project already uses; don't invent a new top-level structure.
2. One command to run. Whatever the project's existing task runner supports — pnpm <name>, python <path>, bun <path>, etc. The user must be able to start it without thinking.
3. No persistence by default. State lives in memory. Persistence is the thing the prototype is _checking_, not something it should depend on. If the question explicitly involves a database, hit a scratch DB or a local file with a clear "PROTOTYPE — wipe me" name.
4. Skip the polish. Use the minimum validation and error handling needed to answer the question safely; do not build a general framework. A focused check is appropriate when an edge case or repository-required test is the question. The point is to learn something fast and then delete it.
5. Surface the state. After every action (logic) or on every variant switch (UI), render the relevant synthetic state so the user can see what changed; redact secrets and unnecessary personal data.
6. Delete or absorb when done. When the prototype has answered its question, either delete it or fold the validated decision into the real code — don't leave it rotting in the repo.
When done
The _answer_ is the only thing worth keeping from a prototype. Capture it somewhere durable (commit message, ADR, issue, or a NOTES.md next to the prototype) along with the question it was answering. If the user is around, that capture is a quick conversation; if not, leave the placeholder so they (or you, on the next pass) can fill in the verdict before deleting the prototype.
Limitations
- Requires the upstream tool, account, API key, or local setup when the workflow names one.
- Does not authorize destructive, production, paid, or external-message actions without explicit user approval.
- Validate generated artifacts or recommendations against the user's real sources before treating them as final.
Skill liên quan
- radix-ui-design-system – Xây dựng design system dễ tiếp cận với primitive của Radix UI. Tùy biến component…
- rayden-use – Xây dựng và duy trì các component và màn hình Rayden UI trong Figma qua Figma MCP, với…
- react-ui-patterns – Các mẫu UI React hiện đại cho trạng thái loading, xử lý lỗi và lấy dữ liệu. Dùng khi xây…
- redesign-existing-projects – Dùng khi nâng cấp website hoặc ứng dụng hiện có bằng cách kiểm tra các mẫu UI chung…
- retro-design – Hướng dẫn triển khai Web và App cho Retro Design (thập niên 60-80). Kích hoạt khi người…
- retro-futurism – Hướng dẫn triển khai Web và App cho Retro Futurism. Kích hoạt khi người dùng muốn ý…
- reverse-image-search – Tìm kiếm ngược hình ảnh. Dùng khi làm việc với hình ảnh hoặc URL hình ảnh công khai.
- robius-state-management – CRITICAL: Dùng cho các mẫu quản lý trạng thái của Robius. Kích hoạt khi có: AppState…