技能 swift-concurrency-expert
🔄

swift-concurrency-expert

安全 ⚙️ 外部命令🌐 网络访问

Revisar y solucionar problemas de concurrencia de Swift

El código de concurrencia de Swift a menudo produce errores del compilador que son difíciles de resolver. Esta habilidad proporciona triaje sistemático y patrones de corrección seguros para cumplir con la concurrencia de Swift 6.2+ con cambios mínimos de comportamiento.

支持: Claude Codex Code(CC)
📊 71 充足
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“swift-concurrency-expert”。 Fix this concurrency error: Sending 'self.photoProcessor' risks causing data races between nonisolated and main actor-isolated uses

预期结果:

  • This error occurs because PhotoProcessor is being passed from a @MainActor context to a nonisolated method.
  • Recommended fixes (choose based on your use case):
  • 1. Make the calling type @MainActor isolated (if UI-bound)
  • 2. Make PhotoProcessor nonisolated with @concurrent for background work
  • 3. Use isolated protocol conformances if Exportable is involved
  • 4. Apply main-actor-by-default mode in project settings for simpler annotations

正在使用“swift-concurrency-expert”。 Why am I getting 'Static property shared is not concurrency-safe' error for my singleton

预期结果:

  • This error appears because global static variables can be accessed from multiple threads.
  • Common solutions:
  • - Annotate the static property with @MainActor
  • - Wrap the type in an actor for internal isolation
  • - Enable 'Approachable Concurrency' mode to infer @MainActor by default
  • - Use @unchecked Sendable only if you can prove thread safety

正在使用“swift-concurrency-expert”。 How do I make my struct Sendable when it has a closure property

预期结果:

  • Structs with closure properties require careful handling for Sendable conformance.
  • Options:
  • 1. Make the closure @Sendable and ensure it captures no mutable state
  • 2. Use @unchecked Sendable if the closure is verified thread-safe
  • 3. Redesign to use value types instead of reference types
  • 4. Move closure-heavy logic into a dedicated actor

安全审计

安全
v5 • 1/17/2026

Pure documentation skill containing only reference materials and workflow guidance for Swift concurrency patterns. All 111 static findings are false positives caused by the scanner misinterpreting markdown code fences and documentation text as executable code. No executable code, scripts, network calls, or file system access exists.

5
已扫描文件
610
分析行数
2
发现项
5
审计总数

风险因素

⚙️ 外部命令 (94)
references/approachable-concurrency.md:21 references/approachable-concurrency.md:27 references/approachable-concurrency.md:33 references/approachable-concurrency.md:34 references/approachable-concurrency.md:40 references/approachable-concurrency.md:43 references/approachable-concurrency.md:49 references/approachable-concurrency.md:50 references/approachable-concurrency.md:51 references/approachable-concurrency.md:52 references/approachable-concurrency.md:53 references/approachable-concurrency.md:54 references/approachable-concurrency.md:55 references/approachable-concurrency.md:56 references/approachable-concurrency.md:57 references/approachable-concurrency.md:58 references/approachable-concurrency.md:59 references/swift-6-2-concurrency.md:7 references/swift-6-2-concurrency.md:9-29 references/swift-6-2-concurrency.md:29-31 references/swift-6-2-concurrency.md:31 references/swift-6-2-concurrency.md:31-35 references/swift-6-2-concurrency.md:35-53 references/swift-6-2-concurrency.md:53-61 references/swift-6-2-concurrency.md:61 references/swift-6-2-concurrency.md:61 references/swift-6-2-concurrency.md:61-63 references/swift-6-2-concurrency.md:63-73 references/swift-6-2-concurrency.md:73-77 references/swift-6-2-concurrency.md:77-89 references/swift-6-2-concurrency.md:89-91 references/swift-6-2-concurrency.md:91 references/swift-6-2-concurrency.md:91 references/swift-6-2-concurrency.md:91-93 references/swift-6-2-concurrency.md:93-110 references/swift-6-2-concurrency.md:110-112 references/swift-6-2-concurrency.md:112 references/swift-6-2-concurrency.md:112 references/swift-6-2-concurrency.md:112-114 references/swift-6-2-concurrency.md:114-131 references/swift-6-2-concurrency.md:131-139 references/swift-6-2-concurrency.md:139-143 references/swift-6-2-concurrency.md:143-147 references/swift-6-2-concurrency.md:147-152 references/swift-6-2-concurrency.md:152-156 references/swift-6-2-concurrency.md:156-161 references/swift-6-2-concurrency.md:161-163 references/swift-6-2-concurrency.md:163-165 references/swift-6-2-concurrency.md:165-183 references/swift-6-2-concurrency.md:183-187 references/swift-6-2-concurrency.md:187-205 references/swift-6-2-concurrency.md:205-213 references/swift-6-2-concurrency.md:213 references/swift-6-2-concurrency.md:213-215 references/swift-6-2-concurrency.md:215-235 references/swift-6-2-concurrency.md:235-237 references/swift-6-2-concurrency.md:237-239 references/swift-6-2-concurrency.md:239 references/swift-6-2-concurrency.md:239-243 references/swift-6-2-concurrency.md:243-245 references/swift-6-2-concurrency.md:245-246 references/swift-6-2-concurrency.md:246-247 references/swift-6-2-concurrency.md:247-248 references/swift-6-2-concurrency.md:248-252 references/swift-6-2-concurrency.md:252-261 references/swiftui-concurrency-tour-wwdc.md:7 references/swiftui-concurrency-tour-wwdc.md:7 references/swiftui-concurrency-tour-wwdc.md:7 references/swiftui-concurrency-tour-wwdc.md:8 references/swiftui-concurrency-tour-wwdc.md:9 references/swiftui-concurrency-tour-wwdc.md:14 references/swiftui-concurrency-tour-wwdc.md:14 references/swiftui-concurrency-tour-wwdc.md:14 references/swiftui-concurrency-tour-wwdc.md:14 references/swiftui-concurrency-tour-wwdc.md:15 references/swiftui-concurrency-tour-wwdc.md:19 references/swiftui-concurrency-tour-wwdc.md:19 references/swiftui-concurrency-tour-wwdc.md:20 references/swiftui-concurrency-tour-wwdc.md:21 references/swiftui-concurrency-tour-wwdc.md:26 SKILL.md:18 SKILL.md:18 SKILL.md:18 SKILL.md:26 SKILL.md:27 SKILL.md:28 SKILL.md:29 SKILL.md:29 SKILL.md:29 SKILL.md:30 SKILL.md:30 SKILL.md:35 SKILL.md:36 SKILL.md:37
🌐 网络访问 (2)
审计者: claude 查看审计历史 →

质量评分

45
架构
100
可维护性
85
内容
21
社区
100
安全
91
规范符合性

你能构建什么

Solucionar errores de concurrencia

Resolver errores del compilador de Swift al migrar al modo de concurrencia de Swift 6.

Aplicar patrones de concurrencia para UI

Implementar aislamiento @MainActor adecuado y cierres Sendable en aplicaciones SwiftUI.

Auditar seguridad de concurrencia

Revisar código para seguridad contra condiciones de carrera y cumplimiento de aislamiento de actor.

试试这些提示

Corrección rápida de errores
Fix this Swift concurrency error: [paste error message and code]
Aislamiento de actor
Make this type or function properly isolated for @MainActor compliance: [paste code]
Conformidad Sendable
Add proper Sendable conformance to this type: [paste type definition]
Revisión de arquitectura
Review this Swift file for concurrency issues and suggest fixes for Swift 6.2 compliance

最佳实践

  • Aplicar la corrección segura más pequeña que preserve el comportamiento existente mientras satisface la seguridad contra condiciones de carrera
  • Preferir anotaciones @MainActor en tipos vinculados a UI sobre soluciones alternativas con @unchecked Sendable
  • Usar conformidades aisladas en lugar de forzar soluciones alternativas nonisolated para tipos main actor

避免

  • Usar @unchecked Sendable sin demostrar seguridad de hilos
  • Aplicar anotaciones @MainActor generales a proyectos completos sin análisis
  • Ignorar diagnósticos del compilador en lugar de entender el problema de concurrencia subyacente

常见问题

¿Qué versiones de Swift son compatibles?
Esta habilidad se enfoca en características y herramientas de migración de concurrencia de Swift 6.2+.
¿Cuáles son los límites en operaciones concurrentes?
No impone límites la habilidad. La capacidad de revisión depende de la complejidad del código y el tamaño del contexto.
¿Esto se integra con Xcode?
La habilidad proporciona orientación. Tú aplicas las correcciones manualmente en Xcode o tu editor preferido.
¿Es seguro compartir mi código?
Sí. Esta habilidad procesa el código localmente en tu sesión de IA sin transmisión externa.
¿Por qué sigo viendo errores después de aplicar correcciones?
Verificar la configuración de compilación del proyecto para indicadores de Concurrencia del Compilador de Swift. Algunos modos requieren adopción completa del módulo.
¿Cómo se compara con SwiftLint?
Esta habilidad aborda la verificación de concurrencia en tiempo de compilación. SwiftLint proporciona reglas adicionales de análisis estático.