用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ChonSong/skill-retriever --skill unship命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | unship |
| description | Compare AI agent-made UI variants locally in a real app, then keep one and clean up unused temporary code. |
| category | development |
| risk | critical |
| source | community |
| source_repo | mbenhard/unship |
| source_type | community |
| date_added | 2026-06-07 |
| author | Marcus Benhard |
| tags | ["ui-variants","frontend","local-first","coding-agents"] |
| tools | ["claude-code","antigravity","cursor","gemini-cli","codex-cli","opencode"] |
| license | MIT |
| license_source | https://github.com/mbenhard/unship/blob/main/LICENSE |
| plugin | {"targets":{"codex":"blocked","claude":"blocked"}} |
Unship is a local workflow for comparing AI-generated UI alternatives in the real application instead of accepting one generated version at a time. It adds temporary source-level variants, shows a local browser picker, and then cleans up the unused options after the user chooses.
This skill is for frontend iteration with coding agents. It is not production A/B testing, analytics, feature flagging, or a hosted experiment service.
Prefer the project-local binary when it exists:
./node_modules/.bin/unship doctor --json --no-update-check
Otherwise install a reviewed, exact CLI version into the project and then run the local binary:
npm install --save-dev @unship/cli@<reviewed-version>
./node_modules/.bin/unship doctor --json --no-update-check
If setup is needed for the local picker, run:
./node_modules/.bin/unship setup --json
Patch only the smallest development-only mount point required to load the picker in the local preview.
Inspect the relevant page, component, route, or rendered artifact. Add the smallest source-level comparison that lets the user judge real options in context.
Use Unship markup:
<section data-unship-pick="Hero">
<div data-unship-option="Current">...</div>
< = >...
...
Keep option labels short and visible. Prefer 2-4 meaningful alternatives unless the user asked for a specific count.
Before handing off to the user, check that:
data-unship-pick group exists;Tell the user the group label, option labels, setup status, and any detected local preview server hints. The user chooses by naming a visible option label in chat.
When the user picks a winner, keep that option's real source and remove losing options for that group. Remove temporary data-unship-* attributes from settled source.
For final cleanup before shipping, remove all Unship artifacts and run:
./node_modules/.bin/unship check --json
Do not claim cleanup is complete until the check reports clean.
npx @unship/cli@latest or any unpinned remote CLI in automated agent workflows. Pin and review the package version first, then execute the project-local binary.Problem: Hidden variants override hidden with CSS.
Solution: Preserve [hidden] { display: none !important; } near variant-specific CSS when needed.
Problem: The user says "keep the second one" after more changes. Solution: Confirm the exact group and option label before editing source.
Problem: The comparison grows into a broad redesign. Solution: Reduce scope to the smallest section, state, or flow that can be judged in the running app.
@webapp-testing - Use for browser-based functional checks after frontend changes.@mobile-design - Use when comparing mobile-specific UI patterns and platform constraints.