mcpField
E
expo-ios-hig-verify

expo-ios-hig-verify

github.com/pproenca测试与质量218126 次安装11 周前更新
代码仓库

关于 expo-ios-hig-verify

这是面向 Expo(React Native)项目的只读静态检查器,可检测可能违反 expo-ios-hig 规则的情况。它按严重程度报告文件和行号,并链接到规则说明,适合团队审查 iOS UI 变更。

主要功能

  1. 01静态检查 Expo 项目
  2. 02按严重程度归类问题
  3. 03提供文件和行号
  4. 04链接规则说明
  5. 05支持文本与 JSON 报告
  6. 06严格模式将建议项计为失败

适用场景

  1. 01合并前检查 iOS UI 变更
  2. 02审查新生成的屏幕
  3. 03排查 Expo 应用的原生体验问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pproenca/dot-skills --skill expo-ios-hig-verify

安装后在 Claude Code 中输入/expo-ios-hig-verify确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

config.json
gotchas.md
metadata.json
references/
workflow.md
scripts/
verify-hig.sh

详细介绍

Expo iOS HIG 验证器

只读静态检查工具,可扫描 Expo(React Native)项目,查找违反 expo-ios-hig 规则的情况,并按严重性分组报告,同时提供 file:line 位置和解释修复方法的规则链接。它是 expo-ios-hig 参考技能的自动化配套工具:该技能讲解规则;此工具负责检查。

适用时机

在以下情况下运行此技能:

  • 用户要求检查、lint、审计或评审 Expo 应用是否符合 HIG 或具有原生体验
  • 合并或发布 Expo iOS UI 更改前,将其作为质量门禁
  • 搭建新屏幕后,确认界面仍保持原生风格
  • 调查 Expo 应用为何“像是套了网页壳”或“感觉像 Android”

此工具为只读工具,绝不会修改目标项目,因此可安全地无人值守运行。

工作流概览

verify-hig.sh [project-dir]
  1. Resolve search roots (app/ src/ components/ by default, or config.json)
  2. Run static checks — one per detectable expo-ios-hig rule (rg, or grep fallback)
  3. Aggregate findings: severity, rule, message, file:line
  4. Print grouped report (ERRORS then ADVISORIES) with a link to each rule
  5. Exit 0 if clean, 1 if any ERROR (with --strict, advisories fail too)

运行:

bash scripts/verify-hig.sh /path/to/expo-app          # text report
bash scripts/verify-hig.sh /path/to/expo-app --strict # advisories also fail
bash scripts/verify-hig.sh /path/to/expo-app --json   # machine-readable

检查项

错误为高精度检查(匹配导入和字面量标志,误报率低)。建议为启发式检查,值得查看,但除非使用 --strict,否则不会导致运行失败。

严重性规则检测内容
错误native-avoid-material-uireact-native-paper、@react-native-material/*、@rneui/*、react-native-elements 导入
错误nav-native-stack@react-navigation/stack / createStackNavigator
错误touch-gesture-handler-threadPanResponder
错误touch-pressable-feedbackTouchableWithoutFeedback
错误acc-dynamic-typeallowFontScaling={false}
错误motion-ui-thread-animationuseNativeDriver: false
建议nav-native-tabscreateBottomTabNavigator(JS 标签栏)
建议visual-semantic-colorscolor:/backgroundColor:/borderColor:/tintColor: 中的硬编码十六进制颜色值
建议visual-system-font自定义 fontFamily:
建议system-status-bar硬编码的 StatusBar style="dark"/"light"
建议motion-virtualized-lists同时使用 <ScrollView> 和 .map( 的文件

每条检查结果都会链接到 expo-ios-hig/references/{rule}.md(链接路径可在 config.json 中配置),查看说明和修复方法。

设置

config.json 为可选文件,未配置时将使用合理的默认值。如果项目目录不同,可在首次使用时覆盖:

  • search_roots — 要扫描的源码目录,以空格分隔(默认值:app src components)
  • skill_rules_dir — 报告中指向 expo-ios-hig 规则文件的路径(默认值:../expo-ios-hig/references)

如果已安装 jq,脚本会从 config.json 读取这些值;否则使用默认值。工具在可用时使用 rg(ripgrep),否则回退到 grep,没有硬性依赖。

使用方法

  1. 在 Expo 项目根目录下运行 scripts/verify-hig.sh。
  2. 阅读分组报告;对于任何检查结果,打开对应的规则文件查看修复方法。
  3. 发布前必须修复错误;审查建议(其中包括有意为之的例外情况)。
  4. 如需扩展:在 run_checks() 中添加一行 check ERROR|ADVISORY <rule> "<message>" "<regex>" — 参见 references/workflow.md。

相关技能

  • expo-ios-hig — 此验证器检查的规则;每条检查结果都会链接回该技能。
  • expo-ios-screen-scaffolder — 以确保通过这些检查的方式生成屏幕。

评论

支持 Markdown