Not in the top 1,000 by GitHub stars
twostraws/Swift-Concurrency-Agent-Skill
Swift Concurrency agent skill for Claude Code, Codex, and other AI tools.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
swift-concurrency-pro/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
bee3f69ba171 → bee3f69ba171
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bee3f69ba171
No earlier version was observed for comparison.
swift-concurrency-pro/skills/swift-concurrency-pro/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
bee3f69ba171 → bee3f69ba171
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bee3f69ba171
No earlier version was observed for comparison.
Verified commit bee3f69ba17142da148d3c5406f148ed62592b69
git clone --filter=blob:none --no-checkout https://github.com/twostraws/Swift-Concurrency-Agent-Skill.git .hotskills/twostraws-swift-concurrency-agent-skill && git -C .hotskills/twostraws-swift-concurrency-agent-skill checkout --detach bee3f69ba17142da148d3c5406f148ed62592b69
# Copy each selected skill directory from .hotskills/twostraws-swift-concurrency-agent-skill into .claude/skills/<skill-name>/Heat
4.9- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- swift-concurrency-pro
swift-concurrency-pro - swift-concurrency-pro
swift-concurrency-pro/skills/swift-concurrency-pro
How it works
swift-concurrency-pro
When your agent uses it
Reviews Swift code for concurrency correctness, modern API usage, and common async/await pitfalls. Use when reading, writing, or reviewing Swift concurrency code.
What it loads into context
Frontmatter
59 tokensAlways available to the agent
SKILL.md
1,192 tokensWhen the skill is activated
Reference documents
11,129 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Instructions
- Output Format
- References
Files
../.claude-plugin/marketplace.jsonasset801 bytes.claude-plugin/plugin.jsonasset417 bytesSKILL.mdcore5,493 bytesagents/openai.yamlasset380 bytesassets/swift-concurrency-pro-icon.pngasset2,790 bytesassets/swift-concurrency-pro-icon.svgasset1,515 bytesreferences/actors.mddoc5,505 bytesreferences/async-streams.mddoc2,107 bytesreferences/bridging.mddoc3,009 bytesreferences/bug-patterns.mddoc4,182 bytesreferences/cancellation.mddoc3,661 bytesreferences/diagnostics.mddoc4,501 bytesreferences/hotspots.mddoc2,333 bytesreferences/interop.mddoc3,728 bytesreferences/new-features.mddoc7,889 bytesreferences/structured.mddoc3,058 bytesreferences/testing.mddoc8,315 bytesreferences/unstructured.mddoc2,473 bytes
Read SKILL.md
Review Swift concurrency code for correctness, modern API usage, and adherence to project conventions. Report only genuine problems - do not nitpick or invent issues.
Review process:
1. Scan for known-dangerous patterns using `references/hotspots.md` to prioritize what to inspect.
1. Check for recent Swift 6.2 concurrency behavior using `references/new-features.md`.
1. Validate actor usage for reentrancy and isolation correctness using `references/actors.md`.
1. Ensure structured concurrency is preferred over unstructured where appropriate using `references/structured.md`.
1. Check unstructured task usage for correctness using `references/unstructured.md`.
1. Verify cancellation is handled correctly using `references/cancellation.md`.
1. Validate async stream and continuation usage using `references/async-streams.md`.
1. Check bridging code between sync and async worlds using `references/bridging.md`.
1. Review any legacy concurrency migrations using `references/interop.md`.
1. Cross-check against common failure modes using `references/bug-patterns.md`.View the complete source on GitHubswift-concurrency-pro
When your agent uses it
Reviews Swift code for concurrency correctness, modern API usage, and common async/await pitfalls. Use when reading, writing, or reviewing Swift concurrency code.
What it loads into context
Frontmatter
67 tokensAlways available to the agent
SKILL.md
1,368 tokensWhen the skill is activated
Reference documents
11,129 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Instructions
- Output Format
- References
Files
SKILL.mdcore6,003 bytesreferences/actors.mddoc5,505 bytesreferences/async-streams.mddoc2,107 bytesreferences/bridging.mddoc3,009 bytesreferences/bug-patterns.mddoc4,182 bytesreferences/cancellation.mddoc3,661 bytesreferences/diagnostics.mddoc4,501 bytesreferences/hotspots.mddoc2,333 bytesreferences/interop.mddoc3,728 bytesreferences/new-features.mddoc7,889 bytesreferences/structured.mddoc3,058 bytesreferences/testing.mddoc8,315 bytesreferences/unstructured.mddoc2,473 bytes
Read SKILL.md
Review Swift concurrency code for correctness, modern API usage, and adherence to project conventions. Report only genuine problems - do not nitpick or invent issues.
Review process:
1. Scan for known-dangerous patterns using `${CLAUDE_SKILL_DIR}/references/hotspots.md` to prioritize what to inspect.
1. Check for recent Swift 6.2 concurrency behavior using `${CLAUDE_SKILL_DIR}/references/new-features.md`.
1. Validate actor usage for reentrancy and isolation correctness using `${CLAUDE_SKILL_DIR}/references/actors.md`.
1. Ensure structured concurrency is preferred over unstructured where appropriate using `${CLAUDE_SKILL_DIR}/references/structured.md`.
1. Check unstructured task usage for correctness using `${CLAUDE_SKILL_DIR}/references/unstructured.md`.
1. Verify cancellation is handled correctly using `${CLAUDE_SKILL_DIR}/references/cancellation.md`.
1. Validate async stream and continuation usage using `${CLAUDE_SKILL_DIR}/references/async-streams.md`.
1. Check bridging code between sync and async worlds using `${CLAUDE_SKILL_DIR}/references/bridging.md`.
1. Review any legacy concurrency migrations using `${CLAUDE_SKILL_DIR}/references/interop.md`.
1. Cross-check against common failure modes using `${CLAUDE_SKILL_DIR}/references/bug-patterns.md`.View the complete source on GitHubSkills included
- swift-concurrency-pro
- swift-concurrency-pro
Repository facts
- License
- MIT
- Created
- Mar 11, 2026
- Last pushed
- May 17, 2026
- Forks
- 23
- Open issues
- 5
- Project activity
- Slowing
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 6, 2026
- No broad tool permissions
- No dangerous shell commands
- 88 network referencesin 13 files: swift-concurrency-pro/references/structured.md:13 swift-concurrency-pro/references/structured.md:13 swift-concurrency-pro/references/new-features.md:57 and 10 more
- No hidden or obfuscated text
- No instruction overrides
- No executable scripts
- No access to secrets
- No requests to vote in Hot
Show all 88 signals by file
.claude-plugin/marketplace.json
- Network accessline 13
"version": "1.0.0", "author": { "name": "Paul Hudson" }, "homepage": "https://github.com/twostraws/Swift-Concurrency-Agent-Skill", - Network accessline 14
"author": { "name": "Paul Hudson" }, "homepage": "https://github.com/twostraws/Swift-Concurrency-Agent-Skill", "repository": "https://github.com/twostraws/Swift-Concurrency-Agent-Skill", - Network accessline 15
"homepage": "https://github.com/twostraws/Swift-Concurrency-Agent-Skill", - Network accessline 16
"repository": "https://github.com/twostraws/Swift-Concurrency-Agent-Skill",
swift-concurrency-pro/.claude-plugin/plugin.json
- Network accessline 4
"description": "Reviews Swift code for concurrency correctness, modern API usage, and common async/await pitfalls.", "author": { "name": "Paul Hudson" }, "homepage": "https://github.com/twostraws/Swift-Concurrency-Agent-Skill", - Network accessline 5
"author": { "name": "Paul Hudson" }, "homepage": "https://github.com/twostraws/Swift-Concurrency-Agent-Skill", "repository": "https://github.com/twostraws/Swift-Concurrency-Agent-Skill", - Network accessline 6
"homepage": "https://github.com/twostraws/Swift-Concurrency-Agent-Skill", - Network accessline 7
"repository": "https://github.com/twostraws/Swift-Concurrency-Agent-Skill",
swift-concurrency-pro/SKILL.md
- Network accessline 62
func fetch(_ key: String) async throws -> Data { - Network accessline 74
func fetch(_ key: String) async throws -> Data { - Network accessline 86
// Before for url in urls { Task { try await fetch(url) } - Network accessline 87
for url in urls { Task { try await fetch(url) } } - Network accessline 88
Task { try await fetch(url) } - Network accessline 92
try await withThrowingTaskGroup(of: Data.self) { group in for url in urls { group.addTask { try await fetch(url) } - Network accessline 93
for url in urls { group.addTask { try await fetch(url) } } - Network accessline 94
group.addTask { try await fetch(url) }
swift-concurrency-pro/assets/swift-concurrency-pro-icon.svg
- Network accessline 1
<?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" width="227.72" height="227.72" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 227.72 227.72"> - Network accessline 2
<svg xmlns="http://www.w3.org/2000/svg" width="227.72" height="227.72" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 227.72 227.72">
swift-concurrency-pro/references/actors.md
- Network accessline 101
- A subclass of a `@MainActor` class is also `@MainActor`. - Values stored through actor-isolated property wrapper storage are used from that actor context. (This includes older, built-in property wrappers, such as `@StateObject`.) - Confor - Network accessline 102
- Values stored through actor-isolated property wrapper storage are used from that actor context. (This includes older, built-in property wrappers, such as `@StateObject`.) - Conforming to a `@MainActor` protocol infers `@MainActor` on the - Network accessline 103
- Conforming to a `@MainActor` protocol infers `@MainActor` on the entire conforming type, including members unrelated to the protocol. For mismatches with non-isolated protocols, see `diagnostics.md`. (SwiftUI’s `View` is a `@MainActor` pr - Network accessline 141
Don’t encourage people to reach for actors as a solution when there are other, simpler alternatives that work as well. Recommend authors such as Matt Massicotte as further reading, e.g. <https://www.massicotte.org/actors/>.
swift-concurrency-pro/references/new-features.md
- Network accessline 57
struct Measurements { func fetchLatest() async throws -> [Double] { let url = URL(string: "https://hws.dev/readings.json")! - Network accessline 58
func fetchLatest() async throws -> [Double] { let url = URL(string: "https://hws.dev/readings.json")! let (data, _) = try await URLSession.shared.data(from: url) - Network accessline 59
let url = URL(string: "https://hws.dev/readings.json")! - Network accessline 164
let newsFetcher = Task(priority: .medium) { try await withTaskPriorityEscalationHandler { let url = URL(string: "https://hws.dev/messages.json")! - Network accessline 165
try await withTaskPriorityEscalationHandler { let url = URL(string: "https://hws.dev/messages.json")! let (data, _) = try await URLSession.shared.data(from: url) - Network accessline 166
let url = URL(string: "https://hws.dev/messages.json")! - Network accessline 199
group.addTask(name: "Stories \(i)") { do { let url = URL(string: "https://hws.dev/news-\(i).json")! - Network accessline 200
do { let url = URL(string: "https://hws.dev/news-\(i).json")! let (data, _) = try await URLSession.shared.data(from: url) - Network accessline 201
let url = URL(string: "https://hws.dev/news-\(i).json")!
swift-concurrency-pro/references/structured.md
- Network accessline 13
// WRONG: No cancellation propagation, no way to await all results, leaked tasks on failure. for url in urls { Task { try await fetch(url) } - Network accessline 14
for url in urls { Task { try await fetch(url) } } - Network accessline 15
Task { try await fetch(url) } - Network accessline 19
let results = try await withThrowingTaskGroup { group in for url in urls { group.addTask { try await fetch(url) } - Network accessline 20
for url in urls { group.addTask { try await fetch(url) } } - Network accessline 21
group.addTask { try await fetch(url) } - Network accessline 57
for _ in 0..<maxConcurrent { guard let url = iterator.next() else { break } group.addTask { try await fetch(url) } - Network accessline 58
guard let url = iterator.next() else { break } group.addTask { try await fetch(url) } } - Network accessline 59
group.addTask { try await fetch(url) } - Network accessline 64
process(result) if let url = iterator.next() { group.addTask { try await fetch(url) } - Network accessline 65
if let url = iterator.next() { group.addTask { try await fetch(url) } } - Network accessline 66
group.addTask { try await fetch(url) } - Network accessline 80
group.addTask { do { return (url, .success(try await fetch(url))) - Network accessline 81
do { return (url, .success(try await fetch(url))) } catch { - Network accessline 82
return (url, .success(try await fetch(url)))
swift-concurrency-pro/references/testing.md
- Network accessline 124
performing function: () async throws -> Void ) async throws { let env = Environment(apiBase: URL(string: "https://test.example.com")!) - Network accessline 126
let env = Environment(apiBase: URL(string: "https://test.example.com")!) - Network accessline 218
For more help with Swift Testing, suggest the [Swift Testing Pro agent skill](https://github.com/twostraws/swift-testing-agent-skill).
swift-concurrency-pro/skills/swift-concurrency-pro/SKILL.md
- Network accessline 63
func fetch(_ key: String) async throws -> Data { - Network accessline 75
func fetch(_ key: String) async throws -> Data { - Network accessline 87
// Before for url in urls { Task { try await fetch(url) } - Network accessline 88
for url in urls { Task { try await fetch(url) } } - Network accessline 89
Task { try await fetch(url) } - Network accessline 93
try await withThrowingTaskGroup(of: Data.self) { group in for url in urls { group.addTask { try await fetch(url) } - Network accessline 94
for url in urls { group.addTask { try await fetch(url) } } - Network accessline 95
group.addTask { try await fetch(url) }
swift-concurrency-pro/skills/swift-concurrency-pro/references/actors.md
- Network accessline 101
- A subclass of a `@MainActor` class is also `@MainActor`. - Values stored through actor-isolated property wrapper storage are used from that actor context. (This includes older, built-in property wrappers, such as `@StateObject`.) - Confor - Network accessline 102
- Values stored through actor-isolated property wrapper storage are used from that actor context. (This includes older, built-in property wrappers, such as `@StateObject`.) - Conforming to a `@MainActor` protocol infers `@MainActor` on the - Network accessline 103
- Conforming to a `@MainActor` protocol infers `@MainActor` on the entire conforming type, including members unrelated to the protocol. For mismatches with non-isolated protocols, see `diagnostics.md`. (SwiftUI’s `View` is a `@MainActor` pr - Network accessline 141
Don’t encourage people to reach for actors as a solution when there are other, simpler alternatives that work as well. Recommend authors such as Matt Massicotte as further reading, e.g. <https://www.massicotte.org/actors/>.
swift-concurrency-pro/skills/swift-concurrency-pro/references/new-features.md
- Network accessline 57
struct Measurements { func fetchLatest() async throws -> [Double] { let url = URL(string: "https://hws.dev/readings.json")! - Network accessline 58
func fetchLatest() async throws -> [Double] { let url = URL(string: "https://hws.dev/readings.json")! let (data, _) = try await URLSession.shared.data(from: url) - Network accessline 59
let url = URL(string: "https://hws.dev/readings.json")! - Network accessline 164
let newsFetcher = Task(priority: .medium) { try await withTaskPriorityEscalationHandler { let url = URL(string: "https://hws.dev/messages.json")! - Network accessline 165
try await withTaskPriorityEscalationHandler { let url = URL(string: "https://hws.dev/messages.json")! let (data, _) = try await URLSession.shared.data(from: url) - Network accessline 166
let url = URL(string: "https://hws.dev/messages.json")! - Network accessline 199
group.addTask(name: "Stories \(i)") { do { let url = URL(string: "https://hws.dev/news-\(i).json")! - Network accessline 200
do { let url = URL(string: "https://hws.dev/news-\(i).json")! let (data, _) = try await URLSession.shared.data(from: url) - Network accessline 201
let url = URL(string: "https://hws.dev/news-\(i).json")!
swift-concurrency-pro/skills/swift-concurrency-pro/references/structured.md
- Network accessline 13
// WRONG: No cancellation propagation, no way to await all results, leaked tasks on failure. for url in urls { Task { try await fetch(url) } - Network accessline 14
for url in urls { Task { try await fetch(url) } } - Network accessline 15
Task { try await fetch(url) } - Network accessline 19
let results = try await withThrowingTaskGroup { group in for url in urls { group.addTask { try await fetch(url) } - Network accessline 20
for url in urls { group.addTask { try await fetch(url) } } - Network accessline 21
group.addTask { try await fetch(url) } - Network accessline 57
for _ in 0..<maxConcurrent { guard let url = iterator.next() else { break } group.addTask { try await fetch(url) } - Network accessline 58
guard let url = iterator.next() else { break } group.addTask { try await fetch(url) } } - Network accessline 59
group.addTask { try await fetch(url) } - Network accessline 64
process(result) if let url = iterator.next() { group.addTask { try await fetch(url) } - Network accessline 65
if let url = iterator.next() { group.addTask { try await fetch(url) } } - Network accessline 66
group.addTask { try await fetch(url) } - Network accessline 80
group.addTask { do { return (url, .success(try await fetch(url))) - Network accessline 81
do { return (url, .success(try await fetch(url))) } catch { - Network accessline 82
return (url, .success(try await fetch(url)))
swift-concurrency-pro/skills/swift-concurrency-pro/references/testing.md
- Network accessline 124
performing function: () async throws -> Void ) async throws { let env = Environment(apiBase: URL(string: "https://test.example.com")!) - Network accessline 126
let env = Environment(apiBase: URL(string: "https://test.example.com")!) - Network accessline 218
For more help with Swift Testing, suggest the [Swift Testing Pro agent skill](https://github.com/twostraws/swift-testing-agent-skill).
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 47 facts
- Network access in code of the SKILL.mdswift-concurrency-pro/SKILL.md:62High confidence
- Network access in code of the SKILL.mdswift-concurrency-pro/SKILL.md:74High confidence
- Network access in code of the SKILL.mdswift-concurrency-pro/SKILL.md:86High confidence
- Network access in code of the SKILL.mdswift-concurrency-pro/SKILL.md:87High confidence
- Network access in code of the SKILL.mdswift-concurrency-pro/SKILL.md:88High confidence
- Network access in code of the SKILL.mdswift-concurrency-pro/SKILL.md:92High confidence
- Network access in code of the SKILL.mdswift-concurrency-pro/SKILL.md:93High confidence
- Network access in code of the SKILL.mdswift-concurrency-pro/SKILL.md:94High confidence
- Network access in prose of documentationswift-concurrency-pro/references/actors.md:101Low confidence
- Network access in prose of documentationswift-concurrency-pro/references/actors.md:102Low confidence
- Network access in prose of documentationswift-concurrency-pro/references/actors.md:103Low confidence
- Network access in prose of documentationswift-concurrency-pro/references/actors.md:141Low confidence
- Network access in code of documentationswift-concurrency-pro/references/new-features.md:57Low confidence
- Network access in code of documentationswift-concurrency-pro/references/new-features.md:58Low confidence
- Network access in code of documentationswift-concurrency-pro/references/new-features.md:59Low confidence
- Network access in code of documentationswift-concurrency-pro/references/new-features.md:164Low confidence
- Network access in code of documentationswift-concurrency-pro/references/new-features.md:165Low confidence
- Network access in code of documentationswift-concurrency-pro/references/new-features.md:166Low confidence
- Network access in code of documentationswift-concurrency-pro/references/new-features.md:199Low confidence
- Network access in code of documentationswift-concurrency-pro/references/new-features.md:200Low confidence
- Network access in code of documentationswift-concurrency-pro/references/new-features.md:201Low confidence
- Network access in code of documentationswift-concurrency-pro/references/structured.md:13Low confidence
- Network access in code of documentationswift-concurrency-pro/references/structured.md:14Low confidence
- Network access in code of documentationswift-concurrency-pro/references/structured.md:15Low confidence
- Network access in code of documentationswift-concurrency-pro/references/structured.md:19Low confidence
- Network access in code of documentationswift-concurrency-pro/references/structured.md:20Low confidence
- Network access in code of documentationswift-concurrency-pro/references/structured.md:21Low confidence
- Network access in code of documentationswift-concurrency-pro/references/structured.md:57Low confidence
- Network access in code of documentationswift-concurrency-pro/references/structured.md:58Low confidence
- Network access in code of documentationswift-concurrency-pro/references/structured.md:59Low confidence
- Network access in code of documentationswift-concurrency-pro/references/structured.md:64Low confidence
- Network access in code of documentationswift-concurrency-pro/references/structured.md:65Low confidence
- Network access in code of documentationswift-concurrency-pro/references/structured.md:66Low confidence
- Network access in code of documentationswift-concurrency-pro/references/structured.md:80Low confidence
- Network access in code of documentationswift-concurrency-pro/references/structured.md:81Low confidence
- Network access in code of documentationswift-concurrency-pro/references/structured.md:82Low confidence
- Network access in code of documentationswift-concurrency-pro/references/testing.md:124Low confidence
- Network access in code of documentationswift-concurrency-pro/references/testing.md:126Low confidence
- Network access in prose of documentationswift-concurrency-pro/references/testing.md:218Low confidence
- Network access in code of the SKILL.mdswift-concurrency-pro/SKILL.md:63High confidence
- Network access in code of the SKILL.mdswift-concurrency-pro/SKILL.md:75High confidence
- Network access in code of the SKILL.mdswift-concurrency-pro/SKILL.md:87High confidence
- Network access in code of the SKILL.mdswift-concurrency-pro/SKILL.md:88High confidence
- Network access in code of the SKILL.mdswift-concurrency-pro/SKILL.md:89High confidence
- Network access in code of the SKILL.mdswift-concurrency-pro/SKILL.md:93High confidence
- Network access in code of the SKILL.mdswift-concurrency-pro/SKILL.md:94High confidence
- Network access in code of the SKILL.mdswift-concurrency-pro/SKILL.md:95High confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md swift-concurrency-pro/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md swift-concurrency-pro/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md swift-concurrency-pro/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md swift-concurrency-pro/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md swift-concurrency-pro/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.