[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6G2PSCN2GXV9FFZDRRRWVB6":3,"skill-same:01M6G2PSCN2GXV9FFZDRRRWVB6":53},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":29,"frontMatter":30,"refName":24,"commitSha":31,"skillDirectory":32,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":6,"ownerHtmlUrl":35,"ownerBlogUrl":36,"ownerDescription":37,"updatedAt":38,"install":39,"resources":52},"01M6G2PSCN2GXV9FFZDRRRWVB6","swift-concurrency-6-2",null,"Swift 6.2 Approachable Concurrency — single-threaded by default, @concurrent for explicit background offloading, isolated conformances for main actor types.","oabdelmaksoud\u002FAgention","oabdelmaksoud","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F50699149?v=4","01M6D5CVVN778ZCDP1WHS816SP","Omar Abdelmaksoud","01M6D8A4TE76V3DCSH3D94VG1V",2,"MIT","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswift-concurrency-6-2\u002FSKILL.md",[],[19,20,21,22,23,24,25],"swift","concurrency","swift concurrency","swift concurrency 6 2","default","main","types","2026-11-10 10:12:30",false,"---\nname: swift-concurrency-6-2\ndescription: Swift 6.2 Approachable Concurrency — single-threaded by default, @concurrent for explicit background offloading, isolated conformances for main actor types.\n---\n\n# Swift 6.2 Approachable Concurrency\n\nPatterns for adopting Swift 6.2's concurrency model where code runs single-threaded by default and concurrency is introduced explicitly. Eliminates common data-race errors without sacrificing performance.\n\n## When to Activate\n\n- Migrating Swift 5.x or 6.0\u002F6.1 projects to Swift 6.2\n- Resolving data-race safety compiler errors\n- Designing MainActor-based app architecture\n- Offloading CPU-intensive work to background threads\n- Implementing protocol conformances on MainActor-isolated types\n- Enabling Approachable Concurrency build settings in Xcode 26\n\n## Core Problem: Implicit Background Offloading\n\nIn Swift 6.1 and earlier, async functions could be implicitly offloaded to background threads, causing data-race errors even in seemingly safe code:\n\n```swift\n\u002F\u002F Swift 6.1: ERROR\n@MainActor\nfinal class StickerModel {\n    let photoProcessor = PhotoProcessor()\n\n    func extractSticker(_ item: PhotosPickerItem) async throws -> Sticker? {\n        guard let data = try await item.loadTransferable(type: Data.self) else { return nil }\n\n        \u002F\u002F Error: Sending 'self.photoProcessor' risks causing data races\n        return await photoProcessor.extractSticker(data: data, with: item.itemIdentifier)\n    }\n}\n```\n\nSwift 6.2 fixes this: async functions stay on the calling actor by default.\n\n```swift\n\u002F\u002F Swift 6.2: OK — async stays on MainActor, no data race\n@MainActor\nfinal class StickerModel {\n    let photoProcessor = PhotoProcessor()\n\n    func extractSticker(_ item: PhotosPickerItem) async throws -> Sticker? {\n        guard let data = try await item.loadTransferable(type: Data.self) else { return nil }\n        return await photoProcessor.extractSticker(data: data, with: item.itemIdentifier)\n    }\n}\n```\n\n## Core Pattern — Isolated Conformances\n\nMainActor types can now conform to non-isolated protocols safely:\n\n```swift\nprotocol Exportable {\n    func export()\n}\n\n\u002F\u002F Swift 6.1: ERROR — crosses into main actor-isolated code\n\u002F\u002F Swift 6.2: OK with isolated conformance\nextension StickerModel: @MainActor Exportable {\n    func export() {\n        photoProcessor.exportAsPNG()\n    }\n}\n```\n\nThe compiler ensures the conformance is only used on the main actor:\n\n```swift\n\u002F\u002F OK — ImageExporter is also @MainActor\n@MainActor\nstruct ImageExporter {\n    var items: [any Exportable]\n\n    mutating func add(_ item: StickerModel) {\n        items.append(item)  \u002F\u002F Safe: same actor isolation\n    }\n}\n\n\u002F\u002F ERROR — nonisolated context can't use MainActor conformance\nnonisolated struct ImageExporter {\n    var items: [any Exportable]\n\n    mutating func add(_ item: StickerModel) {\n        items.append(item)  \u002F\u002F Error: Main actor-isolated conformance cannot be used here\n    }\n}\n```\n\n## Core Pattern — Global and Static Variables\n\nProtect global\u002Fstatic state with MainActor:\n\n```swift\n\u002F\u002F Swift 6.1: ERROR — non-Sendable type may have shared mutable state\nfinal class StickerLibrary {\n    static let shared: StickerLibrary = .init()  \u002F\u002F Error\n}\n\n\u002F\u002F Fix: Annotate with @MainActor\n@MainActor\nfinal class StickerLibrary {\n    static let shared: StickerLibrary = .init()  \u002F\u002F OK\n}\n```\n\n### MainActor Default Inference Mode\n\nSwift 6.2 introduces a mode where MainActor is inferred by default — no manual annotations needed:\n\n```swift\n\u002F\u002F With MainActor default inference enabled:\nfinal class StickerLibrary {\n    static let shared: StickerLibrary = .init()  \u002F\u002F Implicitly @MainActor\n}\n\nfinal class StickerModel {\n    let photoProcessor: PhotoProcessor\n    var selection: [PhotosPickerItem]  \u002F\u002F Implicitly @MainActor\n}\n\nextension StickerModel: Exportable {  \u002F\u002F Implicitly @MainActor conformance\n    func export() {\n        photoProcessor.exportAsPNG()\n    }\n}\n```\n\nThis mode is opt-in and recommended for apps, scripts, and other executable targets.\n\n## Core Pattern — @concurrent for Background Work\n\nWhen you need actual parallelism, explicitly offload with `@concurrent`:\n\n> **Important:** This example requires Approachable Concurrency build settings — SE-0466 (MainActor default isolation) and SE-0461 (NonisolatedNonsendingByDefault). With these enabled, `extractSticker` stays on the caller's actor, making mutable state access safe. **Without these settings, this code has a data race** — the compiler will flag it.\n\n```swift\nnonisolated final class PhotoProcessor {\n    private var cachedStickers: [String: Sticker] = [:]\n\n    func extractSticker(data: Data, with id: String) async -> Sticker {\n        if let sticker = cachedStickers[id] {\n            return sticker\n        }\n\n        let sticker = await Self.extractSubject(from: data)\n        cachedStickers[id] = sticker\n        return sticker\n    }\n\n    \u002F\u002F Offload expensive work to concurrent thread pool\n    @concurrent\n    static func extractSubject(from data: Data) async -> Sticker { \u002F* ... *\u002F }\n}\n\n\u002F\u002F Callers must await\nlet processor = PhotoProcessor()\nprocessedPhotos[item.id] = await processor.extractSticker(data: data, with: item.id)\n```\n\nTo use `@concurrent`:\n1. Mark the containing type as `nonisolated`\n2. Add `@concurrent` to the function\n3. Add `async` if not already asynchronous\n4. Add `await` at call sites\n\n## Key Design Decisions\n\n| Decision | Rationale |\n|----------|-----------|\n| Single-threaded by default | Most natural code is data-race free; concurrency is opt-in |\n| Async stays on calling actor | Eliminates implicit offloading that caused data-race errors |\n| Isolated conformances | MainActor types can conform to protocols without unsafe workarounds |\n| `@concurrent` explicit opt-in | Background execution is a deliberate performance choice, not accidental |\n| MainActor default inference | Reduces boilerplate `@MainActor` annotations for app targets |\n| Opt-in adoption | Non-breaking migration path — enable features incrementally |\n\n## Migration Steps\n\n1. **Enable in Xcode**: Swift Compiler > Concurrency section in Build Settings\n2. **Enable in SPM**: Use `SwiftSettings` API in package manifest\n3. **Use migration tooling**: Automatic code changes via swift.org\u002Fmigration\n4. **Start with MainActor defaults**: Enable inference mode for app targets\n5. **Add `@concurrent` where needed**: Profile first, then offload hot paths\n6. **Test thoroughly**: Data-race issues become compile-time errors\n\n## Best Practices\n\n- **Start on MainActor** — write single-threaded code first, optimize later\n- **Use `@concurrent` only for CPU-intensive work** — image processing, compression, complex computation\n- **Enable MainActor inference mode** for app targets that are mostly single-threaded\n- **Profile before offloading** — use Instruments to find actual bottlenecks\n- **Protect globals with MainActor** — global\u002Fstatic mutable state needs actor isolation\n- **Use isolated conformances** instead of `nonisolated` workarounds or `@Sendable` wrappers\n- **Migrate incrementally** — enable features one at a time in build settings\n\n## Anti-Patterns to Avoid\n\n- Applying `@concurrent` to every async function (most don't need background execution)\n- Using `nonisolated` to suppress compiler errors without understanding isolation\n- Keeping legacy `DispatchQueue` patterns when actors provide the same safety\n- Skipping `model.availability` checks in concurrency-related Foundation Models code\n- Fighting the compiler — if it reports a data race, the code has a real concurrency issue\n- Assuming all async code runs in the background (Swift 6.2 default: stays on calling actor)\n\n## When to Use\n\n- All new Swift 6.2+ projects (Approachable Concurrency is the recommended default)\n- Migrating existing apps from Swift 5.x or 6.0\u002F6.1 concurrency\n- Resolving data-race safety compiler errors during Xcode 26 adoption\n- Building MainActor-centric app architectures (most UI apps)\n- Performance optimization — offloading specific heavy computations to background\n","# Swift 6.2 Approachable Concurrency\n\nPatterns for adopting Swift 6.2's concurrency model where code runs single-threaded by default and concurrency is introduced explicitly. Eliminates common data-race errors without sacrificing performance.\n\n## When to Activate\n\n- Migrating Swift 5.x or 6.0\u002F6.1 projects to Swift 6.2\n- Resolving data-race safety compiler errors\n- Designing MainActor-based app architecture\n- Offloading CPU-intensive work to background threads\n- Implementing protocol conformances on MainActor-isolated types\n- Enabling Approachable Concurrency build settings in Xcode 26\n\n## Core Problem: Implicit Background Offloading\n\nIn Swift 6.1 and earlier, async functions could be implicitly offloaded to background threads, causing data-race errors even in seemingly safe code:\n\n```swift\n\u002F\u002F Swift 6.1: ERROR\n@MainActor\nfinal class StickerModel {\n    let photoProcessor = PhotoProcessor()\n\n    func extractSticker(_ item: PhotosPickerItem) async throws -> Sticker? {\n        guard let data = try await item.loadTransferable(type: Data.self) else { return nil }\n\n        \u002F\u002F Error: Sending 'self.photoProcessor' risks causing data races\n        return await photoProcessor.extractSticker(data: data, with: item.itemIdentifier)\n    }\n}\n```\n\nSwift 6.2 fixes this: async functions stay on the calling actor by default.\n\n```swift\n\u002F\u002F Swift 6.2: OK — async stays on MainActor, no data race\n@MainActor\nfinal class StickerModel {\n    let photoProcessor = PhotoProcessor()\n\n    func extractSticker(_ item: PhotosPickerItem) async throws -> Sticker? {\n        guard let data = try await item.loadTransferable(type: Data.self) else { return nil }\n        return await photoProcessor.extractSticker(data: data, with: item.itemIdentifier)\n    }\n}\n```\n\n## Core Pattern — Isolated Conformances\n\nMainActor types can now conform to non-isolated protocols safely:\n\n```swift\nprotocol Exportable {\n    func export()\n}\n\n\u002F\u002F Swift 6.1: ERROR — crosses into main actor-isolated code\n\u002F\u002F Swift 6.2: OK with isolated conformance\nextension StickerModel: @MainActor Exportable {\n    func export() {\n        photoProcessor.exportAsPNG()\n    }\n}\n```\n\nThe compiler ensures the conformance is only used on the main actor:\n\n```swift\n\u002F\u002F OK — ImageExporter is also @MainActor\n@MainActor\nstruct ImageExporter {\n    var items: [any Exportable]\n\n    mutating func add(_ item: StickerModel) {\n        items.append(item)  \u002F\u002F Safe: same actor isolation\n    }\n}\n\n\u002F\u002F ERROR — nonisolated context can't use MainActor conformance\nnonisolated struct ImageExporter {\n    var items: [any Exportable]\n\n    mutating func add(_ item: StickerModel) {\n        items.append(item)  \u002F\u002F Error: Main actor-isolated conformance cannot be used here\n    }\n}\n```\n\n## Core Pattern — Global and Static Variables\n\nProtect global\u002Fstatic state with MainActor:\n\n```swift\n\u002F\u002F Swift 6.1: ERROR — non-Sendable type may have shared mutable state\nfinal class StickerLibrary {\n    static let shared: StickerLibrary = .init()  \u002F\u002F Error\n}\n\n\u002F\u002F Fix: Annotate with @MainActor\n@MainActor\nfinal class StickerLibrary {\n    static let shared: StickerLibrary = .init()  \u002F\u002F OK\n}\n```\n\n### MainActor Default Inference Mode\n\nSwift 6.2 introduces a mode where MainActor is inferred by default — no manual annotations needed:\n\n```swift\n\u002F\u002F With MainActor default inference enabled:\nfinal class StickerLibrary {\n    static let shared: StickerLibrary = .init()  \u002F\u002F Implicitly @MainActor\n}\n\nfinal class StickerModel {\n    let photoProcessor: PhotoProcessor\n    var selection: [PhotosPickerItem]  \u002F\u002F Implicitly @MainActor\n}\n\nextension StickerModel: Exportable {  \u002F\u002F Implicitly @MainActor conformance\n    func export() {\n        photoProcessor.exportAsPNG()\n    }\n}\n```\n\nThis mode is opt-in and recommended for apps, scripts, and other executable targets.\n\n## Core Pattern — @concurrent for Background Work\n\nWhen you need actual parallelism, explicitly offload with `@concurrent`:\n\n> **Important:** This example requires Approachable Concurrency build settings — SE-0466 (MainActor default isolation) and SE-0461 (NonisolatedNonsendingByDefault). With these enabled, `extractSticker` stays on the caller's actor, making mutable state access safe. **Without these settings, this code has a data race** — the compiler will flag it.\n\n```swift\nnonisolated final class PhotoProcessor {\n    private var cachedStickers: [String: Sticker] = [:]\n\n    func extractSticker(data: Data, with id: String) async -> Sticker {\n        if let sticker = cachedStickers[id] {\n            return sticker\n        }\n\n        let sticker = await Self.extractSubject(from: data)\n        cachedStickers[id] = sticker\n        return sticker\n    }\n\n    \u002F\u002F Offload expensive work to concurrent thread pool\n    @concurrent\n    static func extractSubject(from data: Data) async -> Sticker { \u002F* ... *\u002F }\n}\n\n\u002F\u002F Callers must await\nlet processor = PhotoProcessor()\nprocessedPhotos[item.id] = await processor.extractSticker(data: data, with: item.id)\n```\n\nTo use `@concurrent`:\n1. Mark the containing type as `nonisolated`\n2. Add `@concurrent` to the function\n3. Add `async` if not already asynchronous\n4. Add `await` at call sites\n\n## Key Design Decisions\n\n| Decision | Rationale |\n|----------|-----------|\n| Single-threaded by default | Most natural code is data-race free; concurrency is opt-in |\n| Async stays on calling actor | Eliminates implicit offloading that caused data-race errors |\n| Isolated conformances | MainActor types can conform to protocols without unsafe workarounds |\n| `@concurrent` explicit opt-in | Background execution is a deliberate performance choice, not accidental |\n| MainActor default inference | Reduces boilerplate `@MainActor` annotations for app targets |\n| Opt-in adoption | Non-breaking migration path — enable features incrementally |\n\n## Migration Steps\n\n1. **Enable in Xcode**: Swift Compiler > Concurrency section in Build Settings\n2. **Enable in SPM**: Use `SwiftSettings` API in package manifest\n3. **Use migration tooling**: Automatic code changes via swift.org\u002Fmigration\n4. **Start with MainActor defaults**: Enable inference mode for app targets\n5. **Add `@concurrent` where needed**: Profile first, then offload hot paths\n6. **Test thoroughly**: Data-race issues become compile-time errors\n\n## Best Practices\n\n- **Start on MainActor** — write single-threaded code first, optimize later\n- **Use `@concurrent` only for CPU-intensive work** — image processing, compression, complex computation\n- **Enable MainActor inference mode** for app targets that are mostly single-threaded\n- **Profile before offloading** — use Instruments to find actual bottlenecks\n- **Protect globals with MainActor** — global\u002Fstatic mutable state needs actor isolation\n- **Use isolated conformances** instead of `nonisolated` workarounds or `@Sendable` wrappers\n- **Migrate incrementally** — enable features one at a time in build settings\n\n## Anti-Patterns to Avoid\n\n- Applying `@concurrent` to every async function (most don't need background execution)\n- Using `nonisolated` to suppress compiler errors without understanding isolation\n- Keeping legacy `DispatchQueue` patterns when actors provide the same safety\n- Skipping `model.availability` checks in concurrency-related Foundation Models code\n- Fighting the compiler — if it reports a data race, the code has a real concurrency issue\n- Assuming all async code runs in the background (Swift 6.2 default: stays on calling actor)\n\n## When to Use\n\n- All new Swift 6.2+ projects (Approachable Concurrency is the recommended default)\n- Migrating existing apps from Swift 5.x or 6.0\u002F6.1 concurrency\n- Resolving data-race safety compiler errors during Xcode 26 adoption\n- Building MainActor-centric app architectures (most UI apps)\n- Performance optimization — offloading specific heavy computations to background\n",{"name":5,"description":7},"a318f48de3c5718e8ea2e9f6fae7790e8a759e85","upstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswift-concurrency-6-2",0,"https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fo-abdelmaksoud\u002F","Full-Stack Engineer | AI Systems Architect | Building autonomous multi-agent systems","2026-03-08 21:23:03",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add oabdelmaksoud\u002FAgention --skill swift-concurrency-6-2",{"tool":45,"command":46},"bunx","bunx skills add oabdelmaksoud\u002FAgention --skill swift-concurrency-6-2",{"tool":48,"command":49},"pnpm","pnpm dlx skills add oabdelmaksoud\u002FAgention --skill swift-concurrency-6-2","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswift-concurrency-6-2\u002FSKILL.md",true,[],[54,78,92,125,151,170],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":65,"publishedAt":26},"01M6G2QFCBNBYAJF2KTK85G9A6","visa-doc-translate","Translate visa application documents (images) to English and create a bilingual PDF with original and translation","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fvisa-doc-translate\u002FSKILL.md",[60],{"categoryNo":61,"categoryName":62,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[66,67,68,69,70,71,72,73,74,75,76,77],"translate","doc","visa doc translate","translation","bilingual","english","application","create","with","images","documents","PDF",{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":26},"01M6G2QB09TSK6BY4ME5X20EVQ","verification-loop","A comprehensive verification system for Claude Code sessions.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fverification-loop\u002FSKILL.md",[],[85,86,87,88,89,90,91],"verification","loop","verification loop","sessions","code","claude code sessions","system",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":109,"publishedAt":26},"01M6G2Q6V2F7G03VAAF27FXPJR","tdd-workflow","Use this skill when writing new features, fixing bugs, or refactoring code. Enforces test-driven development with 80%+ coverage including unit, integration, and E2E tests.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Ftdd-workflow\u002FSKILL.md",[98,101,104],{"categoryNo":99,"categoryName":100,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":102,"categoryName":103,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":105,"categoryName":106,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[110,111,112,113,114,115,89,116,117,118,119,120,121,122,123,74,124],"tdd","workflow","tdd workflow","test","e2e tests","development","integration","e2e","refactoring","coverage","use","tests","driven","unit","writing",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":26},"01M6G2Q359YJRWAR2PFCEQAXF3","swiftui-patterns","SwiftUI architecture patterns, state management with @Observable, view composition, navigation, performance optimization, and modern iOS\u002FmacOS UI best practices.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswiftui-patterns\u002FSKILL.md",[],[132,133,134,135,136,74,137,138,139,140,141,142,143,144,145,146,147,148,149,150],"patterns","swiftui","swiftui patterns","macos","ios","navigation","swiftui architecture","management","view","performance optimization","Composition","architecture patterns","Optimization","ui","state","best practices","state management","architecture","performance",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":158,"publishedAt":26},"01M6G2PY8B2FWZTWPZ84H83Y7C","swift-protocol-di-testing","Protocol-based dependency injection for testable Swift code — mock file system, network, and external APIs using focused protocols and Swift Testing.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswift-protocol-di-testing\u002FSKILL.md",[157],{"categoryNo":99,"categoryName":100,"taxonomyType":63,"taxonomyTypeDesc":64},[159,160,161,19,162,163,164,165,166,91,167,168,169,89],"swift protocol di testing","protocol","testing","protocols","mock","dependency injection","swift testing","dependency","injection","network","file",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":179,"publishedAt":26},"01M6G2PMSS5S9ZW0YM7X2BAP8D","swift-actor-persistence","Thread-safe data persistence in Swift using actors — in-memory cache with file-backed storage, eliminating data races by design.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswift-actor-persistence\u002FSKILL.md",[176],{"categoryNo":177,"categoryName":178,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000015","视觉设计",[19,180,181,182,74,183,184,169,185,186,187],"persistence","swift actor persistence","design","data","cache","storage","memory","safe"]