Communitygithub.com

前端工程

构建并改进用户界面,实现一致的视觉设计、响应式布局、无障碍交互和可靠状态管理。适用于页面、组件、表单、前端行为及 UI 打磨。遵循项目的框架与设计系统,通过渲染结果而非仅依赖源码或截图来验证行为。

前端工程 是什么?

该技能旨在为 AI 代理提供一套系统化的前端工程最佳实践,涵盖 UI 构建、状态管理、无障碍设计、性能优化和结果验证。它指导代理如何根据项目已有的设计系统、组件库和框架约定,实现清晰、可维护且用户友好的界面,同时避免常见的反模式(如过度抽象、猜测后端契约或全局状态滥用)。技能支持 Claude Code、Cursor 等主流 AI 编码工具,并能与其他技能(如 API 设计、编写简洁代码、测试编写)无缝协作。其工作原理是通过一系列结构化指南,帮助代理在实施前理解屏幕目标和设计意图,实施时确保组件与状态的正确性,并最终通过实际渲染和浏览器检查来验证 UI 的完整性与正确性,而不是仅依赖静态源码或截图。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/TylerAkins/ai-agent-skills/tree/HEAD/skills/frontend-engineering

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

前端工程 是做什么的?

在撰写文案、注释或报告前,请先阅读 anti-ai-writing。阅读仓库说明、现有屏幕与组件、设计令牌、框架/依赖版本、路由、数据契约与测试规范。使用现有技术栈与工具;对于不熟悉的 API,请查阅该版本对应的官方文档。保留不相关的已有工作与既定产品行为。

确定屏幕的职责与设计

明确受众、用户任务、主要操作、内容层级、所需状态及验收标准。优先使用已有的设计和产品模式。对于实质性的新界面,需澄清缺失的关键需求,并在计划有帮助时使用 agent-planning。对于已明确的小改动,无需进行设计仪式。

当需要新的视觉方向时,研究相关参考,将其有用的层级、密度、导航和交互原则转换为产品自身的语言。不要复制专有品牌标识、文本、素材或精确布局。记录足够的设计决策以指导实现,但不要为单个屏幕创建一整套设计系统。

使用项目令牌中一致的排版、间距、颜色、圆角和强调方式。优先考虑用户的操作和信息,而不是默认使用通用英雄区、统一卡片、过大间距或装饰性渐变。当产品需要时,这些模式可以适当使用;不要施加审美禁令。使用真实内容,包括长标签和稀疏/密集数据。从产品文案中移除不相关的实现细节。保持所有公开控件可用,或明确标识为不可用;绝不可将占位符伪装成工作功能。

实现清晰的组件与状态

对于变更的前端/后端契约,使用 api-design 并保留所支持的消费者。不要从 UI 固定数据中推断后端契约。

使用 writing-clean-simple-code 确保职责清晰、抽象合理。优先选择组合和已建立的组件 API,而非大量不相关标志的矩阵。按职责拆分,而非按任意代码行数。保持数据与展现的归属清晰,但不要强制每个组件都使用单独的容器或 hook。

将状态放置在其所属位置:本地交互状态、共享状态、用于可导航/可分享视图的 URL 状态,以及用于远程数据的现有服务器状态工具。避免重复的派生状态和矛盾的布尔值。不要仅仅为了减少几个 props 就引入全局存储。在相关场景下,保留稳定的条目标识、历史导航、深度链接以及框架的渲染/水合契约。

处理适用的加载、空数据、成功、错误、禁用、待处理和权限状态。区分“无数据”与“筛选后无结果”。在可恢复错误后保留已输入的数据,说明如何继续操作,并防止重复提交。对于乐观更新,需考虑失败、并发变更、过期响应和一致性恢复。在取消共享请求前,明确取消的归属。切勿使用隐藏控件作为授权方式;服务端强制执行始终是必需的。

使布局与交互具有包容性

阅读 无障碍与响应式检查指南。优先使用原生语义 HTML 和经过测试的无障碍基础组件。自定义交互必须实现完整的键盘、焦点和状态契约。标签、错误和状态反馈应无需依赖颜色或动画即可理解。

根据内容需要选择断点,并尊重已有的布局令牌。使用弹性布局、合适的宽度限制和响应式素材。检查窄屏与宽屏、缩放、长文本、空状态及溢出。在小型屏幕上保留有意义的内容和操作,而非为了适配截图而隐藏它们。

保证安全与性能

将远程内容和 URL 视为不受信任。使用框架安全的渲染方式;仅在需要富 HTML 时,通过经过验证的机制进行转义。切勿在客户端 bundle、遥测或错误消息中暴露密钥或私有记录。将缓存数据限定到身份/租户,并在相关上下文变化时清除或使其失效。

避免不必要的 fetch 瀑布、昂贵的重复计算、过大的依赖以及布局偏移。使用框架的资产、渲染和加载约定。基于实测证据和产品预算进行优化;不要机械地添加记忆化、虚拟化或代码分割。实验室结果与现场性能是不同的证据,应分别报告。

验证渲染结果

使用 test-authoring 实现行为覆盖。运行相关仓库检查,并在可用浏览器中使用真实数据检查应用。测试受影响的操作和状态转换、键盘导航、焦点、验证、响应式布局及适用的浏览器目标。检查与变更相关的控制台和网络失败信息。截图仅用于确认外观,而非交互正确性;自动化无障碍扫描不能确认合规性。

将渲染输出与已接受的设计或项目已有的屏幕进行比较。修复发现的裁剪、间距、对比度或交互问题,并重新检查受影响的状态。切勿仅为验证 UI 而运行破坏性的实时操作;应使用安全的固定数据或已授权的测试环境。如果无法访问浏览器,应明确说明哪些内容仍未验证,而非称该界面已通过视觉验证。

报告实际变更、测试过的流程/视口以及实质性限制。当需要独立审查且获得授权时,使用 code-review。提交、推送和发布使用已授权的 git-delivery。

相关技能