{"id":41215752,"url":"https://github.com/AvdLee/Swift-Concurrency-Agent-Skill","last_synced_at":"2026-02-01T09:00:44.062Z","repository":{"id":331857288,"uuid":"1129568168","full_name":"AvdLee/Swift-Concurrency-Agent-Skill","owner":"AvdLee","description":"Add expert Swift Concurrency guidance to your AI coding tool (Agent Skills open format): safe concurrency, performance optimization, and Swift 6 migration.","archived":false,"fork":false,"pushed_at":"2026-01-30T13:34:40.000Z","size":660,"stargazers_count":750,"open_issues_count":4,"forks_count":42,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-01-31T07:06:38.537Z","etag":null,"topics":["agent-skills","async-await","swift","swift-actor","swift-concurrency"],"latest_commit_sha":null,"homepage":"https://www.swiftconcurrencycourse.com","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AvdLee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["AvdLee"]}},"created_at":"2026-01-07T09:19:00.000Z","updated_at":"2026-01-31T06:16:20.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/AvdLee/Swift-Concurrency-Agent-Skill","commit_stats":null,"previous_names":["avdlee/swift-concurrency-agent-skill"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/AvdLee/Swift-Concurrency-Agent-Skill","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AvdLee%2FSwift-Concurrency-Agent-Skill","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AvdLee%2FSwift-Concurrency-Agent-Skill/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AvdLee%2FSwift-Concurrency-Agent-Skill/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AvdLee%2FSwift-Concurrency-Agent-Skill/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AvdLee","download_url":"https://codeload.github.com/AvdLee/Swift-Concurrency-Agent-Skill/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AvdLee%2FSwift-Concurrency-Agent-Skill/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28974246,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T08:16:14.655Z","status":"ssl_error","status_checked_at":"2026-02-01T08:06:51.373Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-skills","async-await","swift","swift-actor","swift-concurrency"],"created_at":"2026-01-23T00:01:14.087Z","updated_at":"2026-02-01T09:00:44.055Z","avatar_url":"https://github.com/AvdLee.png","language":null,"funding_links":["https://github.com/sponsors/AvdLee"],"categories":["Skills","🎯 Individual Skills","Mobile Development","Uncategorized","Others","AI Agent Frameworks","Framework Skills","🧠 Agent Skills"],"sub_categories":["Swift Concurrency","Uncategorized"],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://www.swiftconcurrencycourse.com?utm_source=github\u0026utm_medium=agent-skill\u0026utm_campaign=swift-concurrency-skill\"\u003e\n        \u003cimg width=\"900px\" src=\"assets/github_readme_banner.jpg\" alt=\"Swift Concurrency Agent Skill banner\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n# Swift Concurrency Agent Skill\n\nExpert guidance for any AI coding tool that supports the [Agent Skills open format](https://agentskills.io/home) — safe concurrency, performance, and Swift 6+ migration.\n\nBased on the comprehensive [Swift Concurrency Course](https://www.swiftconcurrencycourse.com?utm_source=github\u0026utm_medium=agent-skill\u0026utm_campaign=swift-concurrency-skill), distilled into actionable, concise references for agents.\n\n## Who this is for\n- Teams migrating to Swift 6 / strict concurrency who need safe defaults and quick triage.\n- Developers debugging data races, isolation errors, or flaky async tests.\n- Anyone wanting performance-minded concurrency patterns (actors, tasks, Sendable, async streams).\n\n## See also my other skills:\n- [SwiftUI Expert](https://github.com/AvdLee/SwiftUI-Agent-Skill)\n- [Core Data Expert](https://github.com/AvdLee/Core-Data-Agent-Skill)\n\n## How to Use This Skill\n\n### Option A: Using skills.sh (recommended)\nInstall this skill with a single command:\n```bash\nnpx skills add https://github.com/avdlee/swift-concurrency-agent-skill --skill swift-concurrency\n```\n\nFor more information, visit the [skills.sh platform page](https://skills.sh/avdlee/swift-concurrency-agent-skill/swift-concurrency).\n\nThen use the skill in your AI agent, for example:  \n\u003e Use the swift concurrency skill and analyze the current project for Swift Concurrency improvements\n\n### Option B: Claude Code Plugin\n\n#### Personal Usage\n\nTo install this Skill for your personal use in Claude Code:\n\n1. Add the marketplace:\n   ```bash\n   /plugin marketplace add AvdLee/Swift-Concurrency-Agent-Skill\n   ```\n\n2. Install the Skill:\n   ```bash\n   /plugin install swift-concurrency@swift-concurrency-agent-skill\n   ```\n\n#### Project Configuration\n\nTo automatically provide this Skill to everyone working in a repository, configure the repository's `.claude/settings.json`:\n\n```json\n{\n  \"enabledPlugins\": {\n    \"swift-concurrency@swift-concurrency-agent-skill\": true\n  },\n  \"extraKnownMarketplaces\": {\n    \"swift-concurrency-agent-skill\": {\n      \"source\": {\n        \"source\": \"github\",\n        \"repo\": \"AvdLee/Swift-Concurrency-Agent-Skill\"\n      }\n    }\n  }\n}\n```\n\nWhen team members open the project, Claude Code will prompt them to install the Skill.\n\n### Option C: Manual install\n1) **Clone** this repository.  \n2) **Install or symlink** the `swift-concurrency/` folder following your tool’s official skills installation docs (see links below).  \n3) **Use your AI tool** as usual and ask it to use the “swift-concurrency” skill for Swift Concurrency tasks.\n\n#### Where to Save Skills\n\nFollow your tool’s official documentation, here are a few popular ones:\n- **Codex:** [Where to save skills](https://developers.openai.com/codex/skills/#where-to-save-skills)\n- **Claude:** [Using Skills](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview#using-skills)\n- **Cursor:** [Enabling Skills](https://cursor.com/docs/context/skills#enabling-skills)\n\n**How to verify**: \n\nYour agent should reference the triage/playbook in `swift-concurrency/SKILL.md` and jump into the relevant reference file for your error or task.\n\n## What This Skill Offers\n\nThis skill gives your AI coding tool comprehensive Swift Concurrency guidance. It can:\n\n### Guide Your Concurrency Decisions\n- Choose the right tool for the job (async/await, actors, tasks, task groups)\n- Understand when to use `@MainActor`, custom actors, or `nonisolated`\n- Navigate isolation domains and prevent data races at compile time\n- Apply `Sendable` conformance correctly for value and reference types\n\n### Write Safe Concurrent Code\n- Avoid common pitfalls like actor reentrancy and retain cycles\n- Prevent data races with proper isolation\n- Handle task cancellation and error propagation correctly\n- Manage memory safely in concurrent contexts\n\n### Optimize Performance\n- Choose between serialized, asynchronous, and parallel execution\n- Reduce actor contention and unnecessary suspension points\n- Understand the tradeoffs of parallelism\n\n### Migrate to Swift 6\n- Step-by-step migration strategies for existing codebases\n- Enable strict concurrency checking incrementally\n- Rewrite closure-based code to async/await\n- Migrate from Combine/RxSwift to Swift Concurrency\n- Use migration tooling for upcoming Swift features\n\n### Test Concurrent Code\n- Write reliable tests using Swift Testing (recommended) or XCTest\n- Handle `@MainActor` isolation in tests\n- Use `withMainSerialExecutor` for deterministic testing\n- Avoid flaky tests with proper async handling\n\n### Integrate with Core Data\n- Safely pass data between isolation domains using `NSManagedObjectID`\n- Implement the Data Access Object (DAO) pattern\n- Use custom actor executors when needed\n- Avoid common Core Data concurrency pitfalls\n\n## What Makes This Skill Different\n\n**Expert Knowledge**: Based on real-world experience migrating large production codebases to Swift 6, distilled from the comprehensive [Swift Concurrency Course](https://www.swiftconcurrencycourse.com?utm_source=github\u0026utm_medium=agent-skill\u0026utm_campaign=swift-concurrency-skill).\n\n**Non-Opinionated**: Focuses on industry-standard best practices and compile-time safety, not architectural preferences. Works with any Swift project, coding style, or architecture.\n\n**Swift 6.2 Ready**: Covers the latest Swift Concurrency features including:\n- Default Actor Isolation\n- `isolated deinit`\n- Global Actor Conformance for protocols\n- `nonisolated(nonsending)` and `@concurrent`\n- Approachable Concurrency build settings\n- Concurrency-safe notifications (iOS 26+)\n\n**Practical \u0026 Concise**: Assumes your AI agent is already smart. Focuses on what developers need to know, not what they already understand. Includes code examples for every pattern.\n\n## See it in action\n[![Youtube Video](assets/agent_skills_watch_on_youtube.png)](https://www.youtube.com/watch?v=khekVi1PK3o)\n\n\n## Skill Structure\n\n```\nswift-concurrency/\n├── SKILL.md                    # Main skill file with decision trees\n└── references/\n    ├── async-await-basics.md   # Fundamentals of async/await syntax\n    ├── tasks.md                # Task lifecycle, cancellation, priorities\n    ├── sendable.md             # Isolation domains and Sendable conformance\n    ├── actors.md               # Actor isolation, global actors, reentrancy\n    ├── async-sequences.md      # AsyncSequence and AsyncStream patterns\n    ├── threading.md            # Threads vs tasks, suspension points\n    ├── memory-management.md    # Retain cycles, weak self, isolated deinit\n    ├── core-data.md            # Core Data integration patterns\n    ├── performance.md          # Optimization with Xcode Instruments\n    ├── testing.md              # Testing concurrent code\n    ├── migration.md            # Step-by-step Swift 6 migration guide\n    ├── glossary.md             # Terms \u0026 concepts for Swift Concurrency\n    └── linting.md              # Linting rules for strict concurrency\n```\n\n## Contributing\n\nContributions are welcome! This repository follows the [Agent Skills open format](https://agentskills.io/home), which has specific structural requirements.\n\n**We strongly recommend using AI assistance for contributions:**\n- Use the [skill-creator skill](https://github.com/anthropics/skills/tree/main/skills/skill-creator) with Claude to ensure proper formatting\n- This helps maintain the Agent Skills format and ensures your contribution works correctly with AI agents\n\n**Please read [CONTRIBUTING.md](CONTRIBUTING.md) for:**\n- How to use the skill-creator skill for contributions\n- Agent Skills format requirements\n- Quality standards and best practices\n- Pull request process\n\nThis skill is maintained to reflect the latest Swift Concurrency best practices and will be updated as the language evolves.\n\n## About the Author\n\nCreated by [Antoine van der Lee](https://www.avanderlee.com), a Swift Concurrency expert and creator of the [Swift Concurrency Course](https://www.swiftconcurrencycourse.com?utm_source=github\u0026utm_medium=agent-skill\u0026utm_campaign=swift-concurrency-skill). With years of experience in Swift \u0026 Swift Concurrency, this skill distills practical knowledge into actionable guidance for AI assistants. He [published tens of articles on Swift Concurrency](https://www.avanderlee.com/category/concurrency/) on his blog called SwiftLee.\n\n## License\n\nThis skill is open-source and available under the MIT License. See [LICENSE](LICENSE) for details.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAvdLee%2FSwift-Concurrency-Agent-Skill","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAvdLee%2FSwift-Concurrency-Agent-Skill","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAvdLee%2FSwift-Concurrency-Agent-Skill/lists"}