mcpField
I
ios-chaos-monkey

ios-chaos-monkey

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

关于 ios-chaos-monkey

ios-chaos-monkey 是面向 iOS 和 Swift 开发者的崩溃排查指南。规则按风险优先级覆盖并发、内存、持久化等运行时问题,并要求先用测试复现崩溃再修复。

主要功能

  1. 01按优先级排列的崩溃风险规则
  2. 02并发与数据竞争检查
  3. 03内存和死锁指南
  4. 04异步任务与取消检查
  5. 05持久化和文件 I/O 风险
  6. 06先测试复现崩溃的流程

适用场景

  1. 01审查 Swift 并发代码中的数据竞争
  2. 02检查异步代码的取消与延续泄漏
  3. 03测试持久化和文件 I/O 故障风险
  4. 04在修复前编写失败的崩溃测试

安装

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

$npx skills add https://github.com/pproenca/dot-skills --skill ios-chaos-monkey

安装后在 Claude Code 中输入/ios-chaos-monkey确认已加载。

包含的文件

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

metadata.json
assets/templates/
_template.md
references/
_sections.md
async-actor-hop-starvation.md
async-continuation-leak.md
async-detached-task-leak.md
async-missing-cancellation.md
async-task-group-error.md
async-unsafe-sendable.md
dead-actor-reentrancy.md
dead-mainactor-blocking.md
dead-queue-hierarchy.md
dead-recursive-lock.md
dead-semaphore-in-async.md
dead-sync-on-main.md
exhaust-file-descriptor-leak.md
exhaust-memory-warning-ignored.md
exhaust-thread-explosion.md
exhaust-unbounded-task-spawn.md
exhaust-urlsession-leak.md
io-concurrent-file-write.md
io-coredata-cross-thread.md
io-filemanager-race.md
io-keychain-thread-safety.md
io-plist-concurrent-mutation.md
io-swiftdata-background.md
mem-async-task-self-capture.md
mem-closure-retain-cycle.md
mem-combine-sink-retain.md
mem-delegate-strong-reference.md

详细介绍

iOS 混沌猴 — 崩溃猎手最佳实践

面向 iOS 和 Swift 应用的对抗式崩溃排查指南。包含 8 个类别中的 47 条规则,并按崩溃严重程度排序。每条规则都遵循 TDD:先展示危险代码,再编写能证明存在 bug 的失败测试,最后修复问题并使测试通过。

Clinic 架构约定(iOS 26 / Swift 6.2)

本技能中的所有指导均基于 Clinic 模块化 MVVM-C 架构:

  • Feature 模块仅导入 Domain + DesignSystem(绝不导入 Data 或其他同级 Feature)
  • App target 是汇聚点,负责管理 DependencyContainer、具体协调器以及 Route Shell 接线
  • Domain 保持纯 Swift,并定义模型以及 repository、*Coordinating、ErrorRouting 和 AppError 契约
  • Data 负责 SwiftData/网络/同步/重试/后台 I/O,并实现 Domain 协议
  • 读写流程默认采用过期数据优先、后台重新验证的读取方式,以及乐观排队写入
  • ViewModel 直接调用 repository 协议(默认不设 use-case/interactor 层)

适用场景

在以下情况下,请参考这些指南:

  • 排查 Swift 中的数据竞争、死锁和并发崩溃
  • 审计内存管理,查找循环引用和释放后使用问题
  • 检查 async/await 代码中的取消处理和 continuation 泄漏
  • 对文件 I/O 和 CoreData/SwiftData 持久化层进行压力测试
  • 在实现修复前编写崩溃复现测试

按优先级划分的规则类别

优先级类别影响前缀
1数据竞争与线程安全严重race-
2内存损坏与泄漏严重mem-
3死锁与线程饥饿高dead-
4Async/Await 与结构化并发高async-
5文件 I/O 与持久化损坏中高io-
6集合与状态变更中mut-
7资源耗尽中exhaust-
8Objective-C 互操作陷阱低至中objc-

快速参考

1. 数据竞争与线程安全(严重)
2. 内存损坏与泄漏(严重)
3. 死锁与线程饥饿(高)
4. Async/Await 与结构化并发(高)
5. 文件 I/O 与持久化损坏(中高)
6. 集合与状态变更(中)
7. 资源耗尽(中)
8. Objective-C 互操作陷阱(低至中)

使用方法

阅读各个参考文件,了解详细说明和代码示例:

参考文件

文件说明
references/_sections.md类别定义和排序
assets/templates/_template.md新规则模板
metadata.json版本和参考信息

评论

支持 Markdown