Agent skill
frontend-safety
前端修改安全约束。当用户修改 Vue/React 组件、调整页面布局、创建覆盖层/蒙版组件时激活。提供数据绑定保护、布局一致性规范、覆盖层定位规范。
Install this agent skill to your Project
npx add-skill https://github.com/doccker/cc-use-exp/tree/main/.gemini/skills/frontend-safety
SKILL.md
前端修改安全约束
修改 Vue/React 文件时,必须遵守以下规则,防止破坏已有功能。
绝对禁止修改(除非明确要求重构逻辑)
| 类型 | 说明 | 示例 |
|---|---|---|
| 数据绑定 | v-model / v-bind 的字段名 | v-model="form.username" |
| Props | props 定义和传递的属性名 | :user-id="userId" |
| 事件 | emit 事件名和 @ 绑定 | @click="handleSubmit" |
| 响应式变量 | ref / reactive 变量名 | const loading = ref(false) |
| API 调用 | 接口路径、参数、响应处理 | api.getUser(id) |
| 类型定义 | TypeScript interface/type | interface User { ... } |
| 函数名 | 已有的方法和函数名 | function handleSubmit() |
允许修改
| 类型 | 说明 | 示例 |
|---|---|---|
| 布局结构 | div / el-row / el-col 层级 | 减少嵌套层级 |
| 布局组件 | Element Plus 布局相关属性 | span / gutter / justify |
| CSS 样式 | style 中的样式代码 | padding / margin / flex |
| 样式类名 | 纯样式用途的 class | class="container" |
| 包裹元素 | 不影响逻辑的外层容器 | 添加/移除布局用的 div |
1. 布局稳定性与对齐规范 (Layout Stability & Alignment)
解决“按钮跳动”、“垂直堆叠”和“横向挤压”问题。
- 表格行网格化 (Grid for Rows):对于包含多个操作点且对齐要求极高的行(如模型列表行),强制使用 CSS Grid。
- 通过
grid-template-columns预定义列宽(如grid-template-columns: 40px minmax(200px, 1fr) 100px 120px auto;)。 - 这能确保 [勾选]、[名称]、[状态]、[开关]、[按钮组] 在全站不同站点卡片中保持绝对垂直对齐,不受文本长度干扰。
- 通过
- 操作区右对齐:操作按钮组应使用
margin-left: auto强制推向行末,或占据 Grid 的最后一列。 - 缓存防御性样式 (Inline Override):若外部 CSS 修改因缓存或优先级(Naive UI 等)多次失效,允许在组件根元素使用 Vue
:style注入关键布局。- 安全性要求:属性名必须为驼峰式(如
whiteSpace),字符串值必须带引号(如'nowrap'),并视情况添加!important。
- 安全性要求:属性名必须为驼峰式(如
2. UI 审美与组件一致性规范
解决“图标不居中”、“样式脱靶”和“风格不统一”问题。
- 操作舱布局 (Capsule UI):批量操作区(如“全选”、“批量测试”)应整合为圆角(如 30px)的深/浅色胶囊形容器,并与筛选栏保持逻辑分区。
- 选择器精准覆盖 (Scoped CSS):修改第三方组件样式时:
- 并列关系:
.menu.el-menu--collapse修改当前节点。 - 嵌套关系:
.menu :deep(.el-menu-item)穿透修改子节点。
- 并列关系:
- 状态颜色语义化:
- 响应时间:< 500ms(绿色),500-2000ms(黄色),> 2000ms(红色)。
- 站点健康度:左侧垂直状态条颜色应与站点可用性状态联动。
- 绝对居中算法:在收起状态(Collapse)的菜单中,必须彻底剥离默认的
padding和margin偏移。- 公式:容器(如 64px) - 选中块(如 44px) = 左右留白各 10px。使用
margin: 4px auto强制居中。
- 公式:容器(如 64px) - 选中块(如 44px) = 左右留白各 10px。使用
- 视觉降噪原则:
- 冗余隐藏:当侧边栏收起且支持“点击 Logo 展开”时,应主动隐藏边缘的悬浮折叠按钮,避免视觉重叠。
- 呼吸感:在窄空间(如 64px 侧边栏)内,背景块不宜过大(推荐 40px-44px),确保存留足够的“呼吸空间”。
3. 工程执行逻辑与数据契约
解决“点击无反应”、“事件丢失”、“TS 编译错误”及“幻觉属性”问题。
- 事件名双向契约 (Event Contract Verification):
- 修改父组件监听器前,必须
read_file子组件确认defineEmits中的真实键名。 - 修改子组件派发名前,必须
grep_search父组件确认所有引用点。 - 禁止猜测:严禁将
@test盲目修正为@test-model,除非已核实两者完全对齐。
- 修改父组件监听器前,必须
- 类型契约审计 (Type Contract Verification) ⚠️重要:
- 禁止幻觉调用:在 Vue 模板或逻辑中调用对象深层属性(如
user.nickname、item.config.url)之前,必须使用read_file或grep_search核实相关的interface / type定义。 - 遵循上游:严禁凭直觉或常理("通常应该有这个字段")捏造属性调用。如果需要新字段,必须先修改全局/局部的类型定义(
.ts文件)及后端契约,最后再修改 Vue 模板。
- 禁止幻觉调用:在 Vue 模板或逻辑中调用对象深层属性(如
- 内联样式安全检查:在 Vue 模板中使用
:style时,严禁出现white-space: nowrap(连字符语法在对象中是非法的),必须转换为whiteSpace: 'nowrap'。 - 写入安全:大段代码更新强制使用
write_file,确保符号${}不被误解析。
4. UI 诊断与重构工作流
遇到布局异常或用户反馈“挤在一起/没反应”时:
- 协议审计:优先检查父子组件的事件监听名是否匹配,排除“通信断裂”。
- 结构扁平化:移除不必要的嵌套
div,让 Flex/Grid 直接作用于核心交互元素。 - 样式提权:检查是否存在样式被第三方库覆盖的情况,必要时使用内联样式强制执行布局逻辑。
- 响应式自愈:在窄屏下检查
flex-nowrap是否导致溢出,必要时切换为flex-wrap或使用overflow-x: auto。
修改前检查清单 (Checklist)
修改前端组件前,必须确认:
- 类型审计:调用的深层对象属性(如
data.xxx)是否已在types接口中被明确定义,严禁直觉猜测。 - 事件对齐:父组件监听的
@event与子组件emit('event')命名称是否 100% 匹配。 - Grid 对齐:复杂行布局是否已预定义 Grid 列宽以防止横向挤压。
- 内联校验:若使用
:style,属性名是否为驼峰,值是否已加引号,无语法错误。 - 异步保护:数据展示(如
item.api_key)是否有空值兜底,防止渲染崩溃。 - 代码完整性:替换的代码片段是否语法完整,不含任何
...占位符。
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
ops-safety
运维安全规范。当用户执行系统级命令(sysctl、iptables、systemctl、Docker 配置、数据库 DDL) 或进行服务器运维操作时触发。 包含命令风险说明模板、回滚方案要求、问题排查原则、Docker/Cloudflare/数据库场景规则等。
ruanzhu
当用户执行 /ruanzhu 命令或请求生成软著源代码文档时触发。提供软著源代码 DOCX 生成规范。 覆盖项目信息检测、语言扫描规则、页数控制、DOCX 格式规范等。
ui-ux-pro-max
专业级 UI/UX 设计规范,需要高质量界面设计时手动触发或描述"设计感/专业UI"时自动触发。 覆盖视觉层次、配色体系、排版节奏、交互微动效、响应式适配等。 日常前端开发由 frontend-dev skill 覆盖。
bash-style
Bash 编写规范。当用户操作 .sh、Dockerfile、Makefile、.yml、.yaml 文件, 或在 Markdown 中编写 bash/shell 代码块时触发。 包含注释规范、文件写入方式、Heredoc 引号规则、权限路径、脚本规范等。
redis-safety
Redis 安全与性能规范。当用户操作 Redis 相关代码(go-redis、Jedis、redis-py、ioredis)时触发。 包含禁止 KEYS 命令、SCAN 替代、大 key 控制、Pipeline 批量、TTL 规范等。
python-dev
Python 开发规范。当用户操作 .py、pyproject.toml、requirements.txt、setup.py 文件, 或涉及 FastAPI、Django、Flask、pytest、asyncio 开发时触发。 包含 PEP 8 风格、类型注解、异常处理、测试规范、异步编程、性能优化等。
Didn't find tool you were looking for?