Install
openclaw skills install @joelee09/ios-self-improveiOS 开发自改进技能 - Swift/ObjC 规范、审核合规、崩溃预防、自动自检、Xcode、UIKit、SwiftUI
openclaw skills install @joelee09/ios-self-improveiOS 开发者自改进技能 - 依赖 developer-self-improve-core 安全闭环
本 Skill 必须与 developer-self-improve-core 配合使用:
# 先安装核心技能
clawhub install developer-self-improve-core
# 再安装 iOS 扩展技能
clawhub install ios-self-improve
依赖关系:
| 领域 | 覆盖内容 |
|---|---|
| 语言 | Swift 5.x, Objective-C |
| UI 框架 | UIKit, SwiftUI |
| 工具 | Xcode, Instruments, TestFlight |
| 生态 | App Store, 审核,推送,Widget |
✅ iOS 系统版本适配规范
✅ UIKit 导航栏最佳实践
✅ AutoLayout 规则
✅ 内存管理规范
✅ 代码风格与格式规范
✅ 常见崩溃预防规则
✅ SwiftUI 布局与生命周期规范
✅ 应用生命周期管理
✅ Swift Concurrency 异步编程规范
✅ 苹果审核规范
✅ 权限配置与隐私规范
✅ 沙盒文件读写规范
✅ 暗黑模式(Dark Mode)适配规范
✅ 本地化与多语言适配规范
✅ 推送通知、WidgetKit 开发规范
每轮回答后自动检查:
| # | 检查项 | 违规示例 |
|---|---|---|
| 1 | 导航栏过渡闪烁、scrollEdgeAppearance 未处理 | 导航栏样式不一致 |
| 2 | 苹果审核规范、隐私权限缺失 | Info.plist 缺少 NSPhotoLibraryUsageDescription |
| 3 | 潜在崩溃风险 | array[0] 未检查 count |
| 4 | 内存泄漏、循环引用 | [weak self] 缺失 |
| 5 | 过时/不兼容 API | 使用已废弃的 UIWebView |
| 6 | AutoLayout 约束冲突 | 约束缺失或矛盾 |
| 7 | SwiftUI 生命周期错误 | @State 使用不当 |
| 8 | 异步代码死锁、数据竞争 | 主线程阻塞 |
| 9 | 沙盒违规读写 | 访问非授权目录 |
| 10 | Info.plist 配置错误 | 缺少必要配置 |
| 11 | 暗黑模式适配缺失 | 硬编码颜色 |
| 时机 | 执行内容 | 频率 |
|---|---|---|
| pre_answer | 检索长期记忆中 iOS 专属规则,自动规避历史错误 | 每轮回答前 |
| post_answer | 执行 iOS 专属自检逻辑,生成领域规则草案 | 每轮回答后 |
| periodic | 联动 developer-self-improve-core,扫描 iOS 领域规则 | 累计 10 轮对话或每周 |
用户指令 > 长期记忆(iOS 专属规则) > AI 临时草案
禁止生成的内容:
允许生成的草案(需满足):
### 【规则 ID】auto_ios_xxxx
### 【场景】iOS 开发场景(≤20 字)
### 【问题/模式】明确描述的问题或可复现模式
### 【建议规则】极简一句话,可直接执行
### 【依据】用户明确指出/重复模式/可验证错误
### 【可信度】高/中/低
### 【建议层级】长期/中期
### 【领域】iOS/具体子领域
用户提问:
导航栏在滚动时样式不一致,如何处理?
AI 回答前:
pre_answer: 检索长期记忆...
命中规则:【auto_ios_nav_001】导航栏必须配置 scrollEdgeAppearance
行动:自动应用该规则
AI 回答后:
post_answer: 执行 iOS 自检...
检查项:导航栏过渡闪烁、scrollEdgeAppearance 未处理
结果:✓ 已处理
用户代码:
// ❌ 错误示例
self.completionHandler = {
self.updateUI() // 循环引用
}
AI 自检:
post_answer: 执行 iOS 自检...
检查项:内存泄漏、循环引用
问题:[weak self] 缺失
生成草案:
【规则 ID】auto_ios_memory_001
【场景】闭包内存管理
【问题/模式】闭包内使用 self 未加 [weak self]
【建议规则】闭包内使用 self 必须添加 [weak self] 或 [unowned self]
【依据】可验证硬错误
【可信度】低
【建议层级】长期
【领域】iOS/内存管理
用户提问:
App 被拒了,原因是隐私权限描述不清晰
AI 自检:
post_answer: 执行 iOS 自检...
检查项:苹果审核规范、隐私权限缺失
问题:Info.plist 隐私描述不规范
生成草案:
【规则 ID】auto_ios_review_001
【场景】App Store 审核
【问题/模式】隐私权限描述不清晰导致被拒
【建议规则】所有隐私权限必须在 Info.plist 中提供清晰的使用场景描述
【依据】用户明确指出的错误
【可信度】高
【建议层级】长期
【领域】iOS/审核规范
./scripts/ios-self-improve.sh init
./scripts/ios-self-improve.sh self-check "代码内容"
./scripts/ios-self-improve.sh load-rules "当前场景"
./scripts/ios-self-improve.sh propose "内容" "场景" "领域"
欢迎提交 Issue 和 Pull Request!
作者: lijiujiu
许可证: MIT
MIT License