核心任务: 确保代码达到 Apple Design Award 评审标准 (执行
./tools/quality_gate.sh full)。 执行频率: 每次 Feature 完成后、PR 合并前、发布前必须执行。
text
├── scripts/
│ ├── run_all.sh # 入口脚本
│ ├── check_build.sh # Step 1: 编译
│ ├── check_architecture.sh # Step 2: 架构
│ ├── check_design_tokens.sh # Step 3: 设计
│ ├── check_a11y.sh # Step 4: 无障碍
│ ├── check_i18n.sh # Step 5: 国际化
│ ├── check_performance.sh # Step 6: 性能
│ ├── check_native.sh # Step 7: 原生
│ └── check_tests.sh # Step 8: 测试
## 技能拓扑图 (Topology)
```mermaid
graph TD
User[用户 / CI] -->|调用| RunAll[run_all.sh]
subgraph "Verification Steps"
RunAll --> Build[1. Build & Lint]
RunAll --> Arch[2. Architecture]
RunAll --> Tokens[3. Design Tokens]
RunAll --> A11y[4. Accessibility]
RunAll --> I18n[5. i18n]
RunAll --> Perf[6. Performance]
RunAll --> Native[7. Native Integration]
RunAll --> Tests[8. Unit Tests]
end
subgraph "Dependencies"
Build --> Xcode[xcodebuild]
Build --> SwiftLint[swiftlint]
Tests --> XCTest[XCTest]
Arch --> Grep[grep/awk]
end
subgraph "Rules"
RunAll -.-|quality_gate.sh| Tools[Project Tools]
end
│ ├── check_build.sh # Step 1: 编译检查 │ ├── check_architecture.sh # Step 2: 架构漂移检测 │ ├── check_design_tokens.sh # Step 3: 设计系统合规 │ ├── check_a11y.sh # Step 4: 无障碍检查 │ ├── check_i18n.sh # Step 5: 国际化检查 │ ├── check_performance.sh # Step 6: 性能基准 (需手动) │ ├── check_native.sh # Step 7: 原生集成检查 │ └── run_all.sh # 一键执行全部检查 ├── templates/ │ └── verification_report.md # 报告模板 └── resources/ └── ada_checklist.md # Apple Design Award 检查清单
text
---
## 1. 执行流程 (Execution Protocol)
### 快速验证 (Quick Check)
```bash
./agent/skills/swiftverify/scripts/run_all.sh
按顺序执行以下检查,任一失败则阻断:
Step脚本验证内容阻断级别1check_build.sh编译通过 + SwiftLint🔴 HARD2check_architecture.shMVVM+ 分层 + 依赖方向🔴 HARD3check_design_tokens.shToken 使用率 100%🟡 SOFT4check_a11y.sh无障碍标签覆盖🟡 SOFT5check_i18n.sh字符串本地化 100%🟡 SOFT6check_performance.sh性能基准 (手动)🟢 INFO7check_native.sh原生集成验证🟢 INFO8check_tests.shUnit Tests (XCTest)🟡 SOFT
swiftverify 整合了完整的无障碍检查指南。详见 resources/accessibility-checklist.md。
自动检查项:
执行检查:
bash
./scripts/check_a11y.sh
文件: scripts/check_build.sh
检查项标准状态xcodebuild 编译EXIT 0HARDSwiftLint0 ErrorHARD生命周期激活所有 Service 启动HARD
文件: scripts/check_architecture.sh
检查项验证规则状态View 层隔离Views/ 不 import SwiftDataHARDModel 层隔离Models/ 不 import SwiftUIHARDSendable 符合所有 Model 实现 SendableHARDGCD 禁用无 DispatchQueueHARD
文件: scripts/check_design_tokens.sh
检查项验证规则状态硬编码颜色无 Color(#...) 或 .red 等SOFT硬编码数值无 .padding(16) 等SOFT标准圆角使用 DesignTokens.CornerRadiusSOFT标准间距使用 DesignTokens.SpacingSOFT
文件: scripts/check_a11y.sh
检查项验证规则状态accessibilityLabel所有 Button/Image 有标签SOFT触控区域交互元素 ≥ 44x44 ptSOFT动态字体无 .font(.system(size:))SOFT
文件: scripts/check_i18n.sh
检查项验证规则状态字符串本地化使用 String(localized:)SOFT无硬编码中文Text("中文") 需替换SOFT
文件: scripts/check_performance.sh
检查项工具标准启动时间Instruments< 400ms内存泄漏Instruments Leaks0主线程阻塞Main Thread Checker0
⚠️ 性能检查需要手动运行 Instruments
文件: scripts/check_native.sh
检查项验证规则状态AppIntent 存在Intents/ 目录非空INFOShortcuts 注册AppShortcutsProvider 存在INFO
文件: scripts/check_tests.sh
检查项验证规则状态Unit Tests如果存在测试 Target,必须全部通过SOFTCode Coverage(可选) 输出覆盖率报告INFO
执行完成后,在 specs/verification_report.md 生成报告:
markdown
# 验证报告 - [日期]
## 总体状态: ✅ PASS / ❌ FAIL
| 检查维度 | 状态 | 违规数 |
|----------|------|--------|
| 编译检查 | ✅ | 0 |
| 架构一致性 | ✅ | 0 |
| 设计系统 | ⚠️ | 3 |
| 无障碍 | ⚠️ | 5 |
| 国际化 | ✅ | 0 |
| 性能 | ⏳ | - |
| 原生集成 | ✅ | 0 |
| 单元测试 | ✅ | 0 |
## 违规详情
...
对于 SOFT 级别的违规,提供自动修复建议:
违规类型自动修复方法硬编码字符串替换为 String(localized: "key")硬编码数值替换为 DesignTokens.Spacing.xxx缺少 a11y 标签添加 .accessibilityLabel()
yaml
# GitHub Actions 示例
- name: SwiftVerify
run: |
chmod +x .agent/skills/swiftverify/scripts/run_all.sh
.agent/skills/swiftverify/scripts/run_all.sh