[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6E60EE5FDZA6H2PCZPMJ89W":3,"skill-same:01M6E60EE5FDZA6H2PCZPMJ89W":95},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6E60EE5FDZA6H2PCZPMJ89W","swift-concurrency",null,"Diagnose data races, convert callback-based code to async\u002Fawait, implement actor isolation patterns, resolve Sendable conformance issues, and guide Swift 6 migration. Use when developers mention: (1) Swift Concurrency, async\u002Fawait, actors, or tasks, (2) \"use Swift Concurrency\" or \"modern concurrency patterns\", (3) migrating to Swift 6, (4) data races or thread safety issues, (5) refactoring closures to async\u002Fawait, (6) @MainActor, Sendable, or actor isolation, (7) concurrent code architecture or performance optimization, (8) concurrency-related linter warnings (SwiftLint or similar; e.g. async_without_await, Sendable\u002Factor isolation\u002FMainActor lint).","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FAvdLee\u002FSwift-Concurrency-Agent-Skill\u002Fswift-concurrency\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"concurrency","swift","swift concurrency","Safety","isolation","patterns","async","use","guide","linter","convert","refactoring","data","Optimization","issues","code","tasks","diagnose","architecture","performance","2026-11-10 10:12:30",false,"---\nname: swift-concurrency\ndescription: 'Diagnose data races, convert callback-based code to async\u002Fawait, implement actor isolation patterns, resolve Sendable conformance issues, and guide Swift 6 migration. Use when developers mention: (1) Swift Concurrency, async\u002Fawait, actors, or tasks, (2) \"use Swift Concurrency\" or \"modern concurrency patterns\", (3) migrating to Swift 6, (4) data races or thread safety issues, (5) refactoring closures to async\u002Fawait, (6) @MainActor, Sendable, or actor isolation, (7) concurrent code architecture or performance optimization, (8) concurrency-related linter warnings (SwiftLint or similar; e.g. async_without_await, Sendable\u002Factor isolation\u002FMainActor lint).'\n---\n# Swift Concurrency\n\n## Fast Path\n\nBefore proposing a fix:\n\n1. Analyze `Package.swift` or `.pbxproj` to determine Swift language mode, strict concurrency level, default isolation, and upcoming features. Do this always, not only for migration work.\n2. Capture the exact diagnostic and offending symbol.\n3. Determine the isolation boundary: `@MainActor`, custom actor, actor instance isolation, or `nonisolated`.\n4. Confirm whether the code is UI-bound or intended to run off the main actor.\n\nProject settings that change concurrency behavior:\n\n| Setting | SwiftPM (`Package.swift`) | Xcode (`.pbxproj`) |\n|---|---|---|\n| Language mode | `swiftLanguageVersions` or `-swift-version` (`\u002F\u002F swift-tools-version:` is not a reliable proxy) | Swift Language Version |\n| Strict concurrency | `.enableExperimentalFeature(\"StrictConcurrency=targeted\")` | `SWIFT_STRICT_CONCURRENCY` |\n| Default isolation | `.defaultIsolation(MainActor.self)` | `SWIFT_DEFAULT_ACTOR_ISOLATION` |\n| Upcoming features | `.enableUpcomingFeature(\"NonisolatedNonsendingByDefault\")` | `SWIFT_UPCOMING_FEATURE_*` |\n\nIf any of these are unknown, ask the developer to confirm them before giving migration-sensitive guidance. Do not guess.\n\nGuardrails:\n\n- Do not recommend `@MainActor` as a blanket fix. Justify why the code is truly UI-bound.\n- Prefer structured concurrency over unstructured tasks. Use `Task.detached` only with a clear reason.\n- If recommending `@preconcurrency`, `@unchecked Sendable`, or `nonisolated(unsafe)`, require a documented safety invariant and a follow-up removal plan.\n- Optimize for the smallest safe change. Do not refactor unrelated architecture during migration.\n- Course references are for deeper learning only. Use them sparingly and only when they clearly help answer the developer's question.\n\n## Quick Fix Mode\n\nUse Quick Fix Mode when all of these are true:\n\n- The issue is localized to one file or one type.\n- The isolation boundary is clear.\n- The fix can be explained in 1-2 behavior-preserving steps.\n\nSkip Quick Fix Mode when any of these are true:\n\n- Build settings or default isolation are unknown.\n- The issue crosses module boundaries or changes public API behavior.\n- The likely fix depends on unsafe escape hatches.\n\n## Common Diagnostics\n\n| Diagnostic | First check | Smallest safe fix | Escalate to |\n|---|---|---|---|\n| `Main actor-isolated ... cannot be used from a nonisolated context` | Is this truly UI-bound? | Isolate the caller to `@MainActor` or use `await MainActor.run { ... }` only when main-actor ownership is correct. | `references\u002Factors.md`, `references\u002Fthreading.md` |\n| `Actor-isolated type does not conform to protocol` | Must the requirement run on the actor? | Prefer isolated conformance (e.g., `extension Foo: @MainActor SomeProtocol`); use `nonisolated` only for truly nonisolated requirements. | `references\u002Factors.md` |\n| `Sending value of non-Sendable type ... risks causing data races` | What isolation boundary is being crossed? | Keep access inside one actor, or convert the transferred value to an immutable\u002Fvalue type. | `references\u002Fsendable.md`, `references\u002Fthreading.md` |\n| `SwiftLint async_without_await` | Is `async` actually required by protocol, override, or `@concurrent`? | Remove `async`, or use a narrow suppression with rationale. Never add fake awaits. | `references\u002Flinting.md` |\n| `wait(...) is unavailable from asynchronous contexts` | Is this legacy XCTest async waiting? | Replace with `await fulfillment(of:)` or Swift Testing equivalents. | `references\u002Ftesting.md` |\n| Core Data concurrency warnings | Are `NSManagedObject` instances crossing contexts or actors? | Pass `NSManagedObjectID` or map to a Sendable value type. | `references\u002Fcore-data.md` |\n| `Thread.current` unavailable from asynchronous contexts | Are you debugging by thread instead of isolation? | Reason in terms of isolation and use Instruments\u002Fdebugger instead. | `references\u002Fthreading.md` |\n| SwiftLint concurrency-related warnings | Which specific lint rule triggered? | Use `references\u002Flinting.md` for rule intent and preferred fixes; avoid dummy awaits. | `references\u002Flinting.md` |\n\n## When Quick Fixes Fail\n\n1. Gather project settings if not already confirmed.\n2. Re-evaluate which isolation boundaries the type crosses.\n3. Route to the matching reference file for a deeper fix.\n4. If the fix may change behavior, document the invariant and add verification steps.\n\n## Smallest Safe Fixes\n\nPrefer changes that preserve behavior while satisfying data-race safety:\n\n- **UI-bound state**: isolate the type or member to `@MainActor`.\n- **Shared mutable state**: move it behind an `actor`, or use `@MainActor` only if the state is UI-owned.\n- **Background work**: when work must hop off caller isolation, use an `async` API marked `@concurrent`; when work can safely inherit caller isolation, use `nonisolated` without `@concurrent`.\n- **Sendability issues**: prefer immutable values and explicit boundaries over `@unchecked Sendable`.\n\n## Concurrency Tool Selection\n\n| Need | Tool | Key Guidance |\n|---|---|---|\n| Single async operation | `async\u002Fawait` | Default choice for sequential async work |\n| Fixed parallel operations | `async let` | Known count at compile time; auto-cancelled on throw |\n| Dynamic parallel operations | `withTaskGroup` | Unknown count; structured — cancels children on scope exit |\n| Sync → async bridge | `Task { }` | Inherits actor context; use `Task.detached` only with documented reason |\n| Shared mutable state | `actor` | Prefer over locks\u002Fqueues; keep isolated sections small |\n| UI-bound state | `@MainActor` | Only for truly UI-related code; justify isolation |\n\n### Common Scenarios\n\n**Network request with UI update**\n```swift\nTask { @concurrent in\n    let data = try await fetchData()\n    await MainActor.run { self.updateUI(with: data) }\n}\n```\n\n**Processing array items in parallel**\n```swift\nawait withTaskGroup(of: ProcessedItem.self) { group in\n    for item in items {\n        group.addTask { await process(item) }\n    }\n    for await result in group {\n        results.append(result)\n    }\n}\n```\n\n## Swift 6 Migration Quick Guide\n\nKey changes in Swift 6:\n- **Strict concurrency checking** enabled by default\n- **Complete data-race safety** at compile time\n- **Sendable requirements** enforced on boundaries\n- **Isolation checking** for all async boundaries\n\n### Migration Validation Loop\n\nApply this cycle for each migration change:\n\n1. **Build** — Run `swift build` or Xcode build to surface new diagnostics\n2. **Fix** — Address one category of error at a time (e.g., all Sendable issues first)\n3. **Rebuild** — Confirm the fix compiles cleanly before moving on\n4. **Test** — Run the test suite to catch regressions (`swift test` or Cmd+U)\n5. **Only proceed** to the next file\u002Fmodule when all diagnostics are resolved\n\nIf a fix introduces new warnings, resolve them before continuing. Never batch multiple unrelated fixes — keep commits small and reviewable.\n\nFor detailed migration steps, see `references\u002Fmigration.md`.\n\n## Reference Router\n\nOpen the smallest reference that matches the question:\n\n- Foundations\n  - `references\u002Fasync-await-basics.md` — async\u002Fawait syntax, execution order, async let, URLSession patterns\n  - `references\u002Ftasks.md` — Task lifecycle, cancellation, priorities, task groups, structured vs unstructured\n  - `references\u002Factors.md` — Actor isolation, @MainActor, global actors, reentrancy, custom executors, Mutex\n  - `references\u002Fsendable.md` — Sendable conformance, value\u002Freference types, @unchecked, region isolation\n  - `references\u002Fthreading.md` — Execution model, suspension points, Swift 6.2 isolation behavior\n- Streams\n  - `references\u002Fasync-sequences.md` — AsyncSequence, AsyncStream, when to use vs regular async methods\n  - `references\u002Fasync-algorithms.md` — Debounce, throttle, merge, combineLatest, channels, timers\n- Applied topics\n  - `references\u002Ftesting.md` — Swift Testing first, XCTest fallback, leak checks\n  - `references\u002Fperformance.md` — Profiling with Instruments, reducing suspension points, execution strategies\n  - `references\u002Fmemory-management.md` — Retain cycles in tasks, memory safety patterns\n  - `references\u002Fcore-data.md` — NSManagedObject sendability, custom executors, isolation conflicts\n- Migration and tooling\n  - `references\u002Fmigration.md` — Swift 6 migration strategy, closure-to-async conversion, @preconcurrency, FRP migration\n  - `references\u002Flinting.md` — Concurrency-focused lint rules and SwiftLint `async_without_await`\n- Glossary\n  - `references\u002Fglossary.md` — Quick definitions of core concurrency terms\n\n## Verification Checklist\n\nWhen changing concurrency code:\n\n1. Re-check build settings before interpreting diagnostics.\n2. Build and clear one category of errors before moving on. Do not batch unrelated fixes into the same change.\n3. Run tests, especially actor-, lifetime-, and cancellation-sensitive tests.\n4. Use Instruments for performance claims instead of guessing.\n5. Verify deallocation and cancellation behavior for long-lived tasks.\n6. Check `Task.isCancelled` in long-running operations.\n7. Never use semaphores or ad hoc locking in async contexts when actor isolation or `Mutex` would express ownership more safely.\n\n---\n\n**Note**: This skill is based on the comprehensive [Swift Concurrency Course](https:\u002F\u002Fwww.swiftconcurrencycourse.com?utm_source=github&utm_medium=agent-skill&utm_campaign=skill-footer) by Antoine van der Lee.\n\n","# Swift Concurrency\n\n## Fast Path\n\nBefore proposing a fix:\n\n1. Analyze `Package.swift` or `.pbxproj` to determine Swift language mode, strict concurrency level, default isolation, and upcoming features. Do this always, not only for migration work.\n2. Capture the exact diagnostic and offending symbol.\n3. Determine the isolation boundary: `@MainActor`, custom actor, actor instance isolation, or `nonisolated`.\n4. Confirm whether the code is UI-bound or intended to run off the main actor.\n\nProject settings that change concurrency behavior:\n\n| Setting | SwiftPM (`Package.swift`) | Xcode (`.pbxproj`) |\n|---|---|---|\n| Language mode | `swiftLanguageVersions` or `-swift-version` (`\u002F\u002F swift-tools-version:` is not a reliable proxy) | Swift Language Version |\n| Strict concurrency | `.enableExperimentalFeature(\"StrictConcurrency=targeted\")` | `SWIFT_STRICT_CONCURRENCY` |\n| Default isolation | `.defaultIsolation(MainActor.self)` | `SWIFT_DEFAULT_ACTOR_ISOLATION` |\n| Upcoming features | `.enableUpcomingFeature(\"NonisolatedNonsendingByDefault\")` | `SWIFT_UPCOMING_FEATURE_*` |\n\nIf any of these are unknown, ask the developer to confirm them before giving migration-sensitive guidance. Do not guess.\n\nGuardrails:\n\n- Do not recommend `@MainActor` as a blanket fix. Justify why the code is truly UI-bound.\n- Prefer structured concurrency over unstructured tasks. Use `Task.detached` only with a clear reason.\n- If recommending `@preconcurrency`, `@unchecked Sendable`, or `nonisolated(unsafe)`, require a documented safety invariant and a follow-up removal plan.\n- Optimize for the smallest safe change. Do not refactor unrelated architecture during migration.\n- Course references are for deeper learning only. Use them sparingly and only when they clearly help answer the developer's question.\n\n## Quick Fix Mode\n\nUse Quick Fix Mode when all of these are true:\n\n- The issue is localized to one file or one type.\n- The isolation boundary is clear.\n- The fix can be explained in 1-2 behavior-preserving steps.\n\nSkip Quick Fix Mode when any of these are true:\n\n- Build settings or default isolation are unknown.\n- The issue crosses module boundaries or changes public API behavior.\n- The likely fix depends on unsafe escape hatches.\n\n## Common Diagnostics\n\n| Diagnostic | First check | Smallest safe fix | Escalate to |\n|---|---|---|---|\n| `Main actor-isolated ... cannot be used from a nonisolated context` | Is this truly UI-bound? | Isolate the caller to `@MainActor` or use `await MainActor.run { ... }` only when main-actor ownership is correct. | `references\u002Factors.md`, `references\u002Fthreading.md` |\n| `Actor-isolated type does not conform to protocol` | Must the requirement run on the actor? | Prefer isolated conformance (e.g., `extension Foo: @MainActor SomeProtocol`); use `nonisolated` only for truly nonisolated requirements. | `references\u002Factors.md` |\n| `Sending value of non-Sendable type ... risks causing data races` | What isolation boundary is being crossed? | Keep access inside one actor, or convert the transferred value to an immutable\u002Fvalue type. | `references\u002Fsendable.md`, `references\u002Fthreading.md` |\n| `SwiftLint async_without_await` | Is `async` actually required by protocol, override, or `@concurrent`? | Remove `async`, or use a narrow suppression with rationale. Never add fake awaits. | `references\u002Flinting.md` |\n| `wait(...) is unavailable from asynchronous contexts` | Is this legacy XCTest async waiting? | Replace with `await fulfillment(of:)` or Swift Testing equivalents. | `references\u002Ftesting.md` |\n| Core Data concurrency warnings | Are `NSManagedObject` instances crossing contexts or actors? | Pass `NSManagedObjectID` or map to a Sendable value type. | `references\u002Fcore-data.md` |\n| `Thread.current` unavailable from asynchronous contexts | Are you debugging by thread instead of isolation? | Reason in terms of isolation and use Instruments\u002Fdebugger instead. | `references\u002Fthreading.md` |\n| SwiftLint concurrency-related warnings | Which specific lint rule triggered? | Use `references\u002Flinting.md` for rule intent and preferred fixes; avoid dummy awaits. | `references\u002Flinting.md` |\n\n## When Quick Fixes Fail\n\n1. Gather project settings if not already confirmed.\n2. Re-evaluate which isolation boundaries the type crosses.\n3. Route to the matching reference file for a deeper fix.\n4. If the fix may change behavior, document the invariant and add verification steps.\n\n## Smallest Safe Fixes\n\nPrefer changes that preserve behavior while satisfying data-race safety:\n\n- **UI-bound state**: isolate the type or member to `@MainActor`.\n- **Shared mutable state**: move it behind an `actor`, or use `@MainActor` only if the state is UI-owned.\n- **Background work**: when work must hop off caller isolation, use an `async` API marked `@concurrent`; when work can safely inherit caller isolation, use `nonisolated` without `@concurrent`.\n- **Sendability issues**: prefer immutable values and explicit boundaries over `@unchecked Sendable`.\n\n## Concurrency Tool Selection\n\n| Need | Tool | Key Guidance |\n|---|---|---|\n| Single async operation | `async\u002Fawait` | Default choice for sequential async work |\n| Fixed parallel operations | `async let` | Known count at compile time; auto-cancelled on throw |\n| Dynamic parallel operations | `withTaskGroup` | Unknown count; structured — cancels children on scope exit |\n| Sync → async bridge | `Task { }` | Inherits actor context; use `Task.detached` only with documented reason |\n| Shared mutable state | `actor` | Prefer over locks\u002Fqueues; keep isolated sections small |\n| UI-bound state | `@MainActor` | Only for truly UI-related code; justify isolation |\n\n### Common Scenarios\n\n**Network request with UI update**\n```swift\nTask { @concurrent in\n    let data = try await fetchData()\n    await MainActor.run { self.updateUI(with: data) }\n}\n```\n\n**Processing array items in parallel**\n```swift\nawait withTaskGroup(of: ProcessedItem.self) { group in\n    for item in items {\n        group.addTask { await process(item) }\n    }\n    for await result in group {\n        results.append(result)\n    }\n}\n```\n\n## Swift 6 Migration Quick Guide\n\nKey changes in Swift 6:\n- **Strict concurrency checking** enabled by default\n- **Complete data-race safety** at compile time\n- **Sendable requirements** enforced on boundaries\n- **Isolation checking** for all async boundaries\n\n### Migration Validation Loop\n\nApply this cycle for each migration change:\n\n1. **Build** — Run `swift build` or Xcode build to surface new diagnostics\n2. **Fix** — Address one category of error at a time (e.g., all Sendable issues first)\n3. **Rebuild** — Confirm the fix compiles cleanly before moving on\n4. **Test** — Run the test suite to catch regressions (`swift test` or Cmd+U)\n5. **Only proceed** to the next file\u002Fmodule when all diagnostics are resolved\n\nIf a fix introduces new warnings, resolve them before continuing. Never batch multiple unrelated fixes — keep commits small and reviewable.\n\nFor detailed migration steps, see `references\u002Fmigration.md`.\n\n## Reference Router\n\nOpen the smallest reference that matches the question:\n\n- Foundations\n  - `references\u002Fasync-await-basics.md` — async\u002Fawait syntax, execution order, async let, URLSession patterns\n  - `references\u002Ftasks.md` — Task lifecycle, cancellation, priorities, task groups, structured vs unstructured\n  - `references\u002Factors.md` — Actor isolation, @MainActor, global actors, reentrancy, custom executors, Mutex\n  - `references\u002Fsendable.md` — Sendable conformance, value\u002Freference types, @unchecked, region isolation\n  - `references\u002Fthreading.md` — Execution model, suspension points, Swift 6.2 isolation behavior\n- Streams\n  - `references\u002Fasync-sequences.md` — AsyncSequence, AsyncStream, when to use vs regular async methods\n  - `references\u002Fasync-algorithms.md` — Debounce, throttle, merge, combineLatest, channels, timers\n- Applied topics\n  - `references\u002Ftesting.md` — Swift Testing first, XCTest fallback, leak checks\n  - `references\u002Fperformance.md` — Profiling with Instruments, reducing suspension points, execution strategies\n  - `references\u002Fmemory-management.md` — Retain cycles in tasks, memory safety patterns\n  - `references\u002Fcore-data.md` — NSManagedObject sendability, custom executors, isolation conflicts\n- Migration and tooling\n  - `references\u002Fmigration.md` — Swift 6 migration strategy, closure-to-async conversion, @preconcurrency, FRP migration\n  - `references\u002Flinting.md` — Concurrency-focused lint rules and SwiftLint `async_without_await`\n- Glossary\n  - `references\u002Fglossary.md` — Quick definitions of core concurrency terms\n\n## Verification Checklist\n\nWhen changing concurrency code:\n\n1. Re-check build settings before interpreting diagnostics.\n2. Build and clear one category of errors before moving on. Do not batch unrelated fixes into the same change.\n3. Run tests, especially actor-, lifetime-, and cancellation-sensitive tests.\n4. Use Instruments for performance claims instead of guessing.\n5. Verify deallocation and cancellation behavior for long-lived tasks.\n6. Check `Task.isCancelled` in long-running operations.\n7. Never use semaphores or ad hoc locking in async contexts when actor isolation or `Mutex` would express ownership more safely.\n\n---\n\n**Note**: This skill is based on the comprehensive [Swift Concurrency Course](https:\u002F\u002Fwww.swiftconcurrencycourse.com?utm_source=github&utm_medium=agent-skill&utm_campaign=skill-footer) by Antoine van der Lee.\n\n",{"name":5,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002FAvdLee\u002FSwift-Concurrency-Agent-Skill\u002Fswift-concurrency",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill swift-concurrency",{"tool":59,"command":60},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill swift-concurrency",{"tool":62,"command":63},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill swift-concurrency","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FAvdLee\u002FSwift-Concurrency-Agent-Skill\u002Fswift-concurrency\u002FSKILL.md",true,[67,73,79,83,87,91],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"customize.toml","OTHER","其他",1628,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-create-epics-and-stories\u002Fcustomize.toml",{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"steps\u002Fstep-01-validate-prerequisites.md","REFERENCE","参考文档",10576,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-create-epics-and-stories\u002Fsteps\u002Fstep-01-validate-prerequisites.md",{"path":80,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":81,"sourceHtmlUrl":82},"steps\u002Fstep-02-design-epics.md",7821,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-create-epics-and-stories\u002Fsteps\u002Fstep-02-design-epics.md",{"path":84,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":85,"sourceHtmlUrl":86},"steps\u002Fstep-03-create-stories.md",8865,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-create-epics-and-stories\u002Fsteps\u002Fstep-03-create-stories.md",{"path":88,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":89,"sourceHtmlUrl":90},"steps\u002Fstep-04-final-validation.md",5245,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-create-epics-and-stories\u002Fsteps\u002Fstep-04-final-validation.md",{"path":92,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":93,"sourceHtmlUrl":94},"templates\u002Fepics-template.md",1105,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-create-epics-and-stories\u002Ftemplates\u002Fepics-template.md",[96,110,120,129,135,142],{"skillNo":97,"name":98,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":106,"publishedAt":39},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[101],{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[107,108,109],"model","model hierarchy","model hierarchy skill",{"skillNo":111,"name":112,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":116,"publishedAt":39},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[115],{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},[117,118,119],"MCP","zoom","zoom mcp",{"skillNo":121,"name":122,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":39},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[126,127,128,118],"sdk","zoom apps sdk","apps",{"skillNo":130,"name":131,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":39},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[131],{"skillNo":136,"name":137,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":141,"publishedAt":39},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[140],{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},[137],{"skillNo":143,"name":144,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":147,"publishedAt":39},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[144]]