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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

View on GitHubAdd to my skills

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>/
583GitHub stars
5stars in 7 days
2skills in this repository
0commits in 30 days

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

Oct 25, 2026Nov 6, 2026583

30-day change not yet available: not enough history.

Individual skills in this repository

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 tokens

Always available to the agent

SKILL.md

1,192 tokens

When the skill is activated

Reference documents

11,129 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Core Instructions
  2. Output Format
  3. References

Files

  • ../.claude-plugin/marketplace.jsonasset801 bytes
  • .claude-plugin/plugin.jsonasset417 bytes
  • SKILL.mdcore5,493 bytes
  • agents/openai.yamlasset380 bytes
  • assets/swift-concurrency-pro-icon.pngasset2,790 bytes
  • assets/swift-concurrency-pro-icon.svgasset1,515 bytes
  • references/actors.mddoc5,505 bytes
  • references/async-streams.mddoc2,107 bytes
  • references/bridging.mddoc3,009 bytes
  • references/bug-patterns.mddoc4,182 bytes
  • references/cancellation.mddoc3,661 bytes
  • references/diagnostics.mddoc4,501 bytes
  • references/hotspots.mddoc2,333 bytes
  • references/interop.mddoc3,728 bytes
  • references/new-features.mddoc7,889 bytes
  • references/structured.mddoc3,058 bytes
  • references/testing.mddoc8,315 bytes
  • references/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 GitHub

Skills 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 shell

Automated signals, not a guarantee

Checked Nov 6, 2026

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

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md swift-concurrency-pro/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md swift-concurrency-pro/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md swift-concurrency-pro/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md swift-concurrency-pro/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard 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.