ce-polish
启动开发服务器,在浏览器中打开该功能,然后一起迭代 - 你说感觉不对,修复就会发生。
ce-polish 是会话式用户体验优化技能。它会自动检测您的开发服务器设置(或读取 .claude/launch.json),在后台启动服务器,通过 IDE 的首选机制在浏览器中打开该功能,然后进入紧密的迭代循环:您描述要修复的内容,更改落地,热重载拾取它,重复直到您满意为止。没有清单,没有信封——只是与正在运行的浏览器配对的对话。
此技能仅限手动调用 (disable-model-invocation: true)。它仅在您通过斜杠命令显式调用它时才会触发 - 从不自动触发。 Polish 启动一个开发服务器并运行分支的代码,因此它仍然是一个经过深思熟虑的用户选择。框架自动检测范围很广(Rails / Next / Vite / Nuxt / Astro / Remix / SvelteKit / Procfile),但抛光循环故意最小化。
TL;DR
| 问题 | 回答 |
|---|---|
| 它有什么作用? | 启动开发服务器,在浏览器中打开该功能,通过对话迭代 UX/视觉打磨 |
| 何时使用它 | 对已经可用的功能进行后期用户体验改进;难以提前指定的视觉或交互细化 |
| 它生产什么 | 当前分支上已提交的修复(默认情况下无 PR — 之后使用 /ce-commit-push-pr) |
| 状态 | 稳定 - 仅手动调用 |
## 问题
后期用户体验优化不太适合其他技能:
- 实施前审查不适用 - 该功能已经可以使用,您正在完善感觉
- 代码审查是错误的角度——你不需要静态分析,你需要使用这个东西
- 聊天中的静态屏幕截图是不够的 - 交互、悬停状态、转换、边缘情况数据都需要真实的会话
- 写一个抛光计划是过度设计的——当你列出问题时,你可能已经解决了其中的三个问题
- 手动循环 - 启动开发服务器,打开浏览器,将屏幕截图粘贴回聊天中,描述问题,观看修复,刷新 - 太多的切换
解决方案
ce-polish 折叠循环:
- 阶段 0 选择正确的分支(PR 编号、分支名称或当前分支)
- 阶段 1 启动开发服务器(自动检测框架或读取
.claude/launch.json)并在 IDE 的首选浏览器界面中打开该功能 - 阶段 2 是一个对话:您描述要修复的内容,代理进行更改,热重载启动,您继续前进
没有决策树,没有信封,没有评分标准——只是运行迭代。该技能会完成无聊的部分(解析端口、选择包管理器、路由到框架的启动命令、打开正确的浏览器),因此您可以将时间花在润色上,而不是管道上。
是什么让它如此新颖
1. 跨 8 个框架的自动开发服务器检测
该技能通过 scripts/detect-project-type.sh 检测项目类型(Rails、Next.js、Vite、Nuxt、Astro、Remix、SvelteKit、Procfile-based)并路由到匹配的配方(references/dev-server-<framework>.md)。每个配方都包含框架的典型启动命令、端口默认值和怪癖。对于未知的项目,技能会询问如何开始。
2. .claude/launch.json 覆盖
如果项目具有 .claude/launch.json,则技能将使用该配置而不是自动检测 - 您已经告诉技能如何启动项目,因此它不需要猜测。架构记录在 references/launch-json-schema.md 中。
3. IDE 感知的浏览器切换
该技能通过 env-var 探针 (references/ide-detection.md) 检测主机 IDE(Claude Code、Cursor、VS Code),并使用匹配机制打开开发服务器 URL:Claude Code 的 open、Cursor 的内置浏览器、VS Code 的简单浏览器。适合合适环境的合适表面,无需手动操作。
4. 对话式迭代 — 无清单
第 2 阶段是抛光循环。用户描述了需要修复的问题;代理人进行变更;开发服务器热重载;用户查看结果并说出下一步。安装 agent-browser 后,代理可以根据请求截取屏幕截图或检查页面。当用户说他们已经完成时,修复就会被提交。
没有清单。没有信封。只是谈话。
这不是懒惰——这是后期抛光的正确形状。固定的清单让工作感觉就像是审计;对话让人感觉像是协作改进。
5.带有运行状况探测的后台开发服务器
开发服务器在后台启动,输出记录到临时文件中。该技能探测 http://localhost:<port> 长达 30 秒。如果服务器没有启动,它会显示日志的最后 20 行并询问该怎么做,而不是默默等待或继续访问无效的 URL。
6. 仅限手动调用
前面的 disable-model-invocation: true 可以防止技能自动触发。波兰语是一个经过深思熟虑的用户选择 - 该技能仅在您直接键入 /ce-polish 时才会触发。这可以避免用户在只想查看页面时感到惊讶。
简单示例
您刚刚完成了通知设置页面。它可以工作,但间距感觉不对,切换状态不太正确,并且空状态副本很干燥。您调用 /ce-polish。
该技能验证您位于功能分支(不是主分支),检查 .claude/launch.json (无),运行 detect-project-type.sh (检测 next),读取 references/dev-server-next.md 作为启动命令,通过 resolve-package-manager.sh 解析包管理器(pnpm),选择端口3000,并在后台启动 pnpm dev。 4 秒后,localhost:3000 做出响应。该技能会在 Cursor 的内置浏览器中打开它。
您浏览至 /settings/notifications。您说“切换行之间的间距感觉太紧”。代理找到组件,调整间距,启动热重载。您说“现在切换状态需要更清晰的可供性 - 让关闭状态看起来更明显关闭。”代理更新组件。你浏览空状态并说“这个副本是无菌的,让它变暖。”代理重写副本。
你很高兴。代理提交修复。您继续使用 /ce-commit-push-pr。
何时去实现它
在以下情况下使用 ce-polish:
- 该功能已经可以使用,并且您正在完善用户体验/视觉感觉
- 您可以通过“看到”问题来阐明问题,而不是通过预先写下来
- 热重载+浏览器端迭代将击败替代方案(聊天→屏幕截图→描述→修复→重复)
- 变化集是视觉的:间距、复制、过渡、可供性、空状态、微交互
在以下情况下跳过 ce-polish:
- 该功能尚未构建 → 使用
/ce-work - 抛光需要设计规范(Figma 比较、品牌系统对齐)→ 使用
/ce-frontend-design或专用的设计同步技能 - 这项工作是非前端的(API 行为、后端逻辑)——没有什么可浏览的
用作工作流程的一部分
ce-polish 在功能完成后稍后调用:
/ce-work or /ce-debug → feature works → /ce-polish → /ce-commit-push-pr
它在链中没有直接的调用者——当工作需要视觉细化时,抛光是一个有意的用户调用。抛光循环结束后,标准运输交接是 /ce-commit-push-pr 以打开 PR。
使用独立版
该技能始终独立调用:
- 当前分支 —
/ce-polish - 具体 PR —
/ce-polish 1234(查看 PR) - 特定分支 —
/ce-polish feat/notification-settings
当自动检测器未知框架时,技能会询问如何启动项目。将 .claude/launch.json 添加到存储库可以保留下次的答案。
## 参考
| 论证 | 效果 |
|---|---|
| (空) | 使用当前分支 |
<PR number> |
<PR number>查看 PR(首先探测现有工作树) |
<branch name> |
查看分行 |
支持文件:
.claude/launch.json(项目本地覆盖)—references/launch-json-schema.md中的架构- 框架配方 —
references/dev-server-<rails|next|vite|nuxt|astro|remix|sveltekit|procfile>.md - IDE 检测 —
references/ide-detection.md - 脚本 —
scripts/detect-project-type.sh、scripts/read-launch-json.sh、scripts/resolve-package-manager.sh、scripts/resolve-port.sh
## 常问问题
为什么只能手动调用?
Polish 启动一个开发服务器并运行已签出分支的代码 - 这是一个副作用操作,应该是经过深思熟虑的选择,而不是当您只是查看页面时模型自动触发的操作。 disable-model-invocation: true 会阻止它触发,除非您显式调用它。当需要时输入 /ce-polish 。
如果我的框架不在检测列表中怎么办?
该技能询问如何开始项目。您可以添加 .claude/launch.json 来保留未来运行的答案。
没有 agent-browser 是否可以工作?
是的 - 第 2 阶段仍然以对话方式进行,代理只是无法根据请求截取屏幕截图或检查页面。热重载+你的眼睛仍然工作正常。如果您希望代理在不描述状态的情况下捕获状态,请安装 agent-browser 。
非 Claude-Code IDE 怎么样?
该技能通过 env-var 探针检测 Cursor 和 VS Code,并使用每个 IDE 的首选浏览器界面。在这些之外,它会回退到 open。框架检测和开发服务器启动与 IDE 无关。
为什么最后没有创建公关?
波兰语通常需要多个会话,并且每次都强制执行 PR 会造成混乱。提交和 PR 是用户通过 /ce-commit-push-pr 进行的单独选择。
另请参阅
ce-work— 首先构建功能;波兰第二ce-commit-push-pr— 完善后打开 PRce-frontend-design— 用于从头开始的高质量前端设计(不同范围)ce-debug— 当根本原因调查很重要时,用于修复您在抛光过程中发现的错误