write-swift
写、审查或迁移 Swift 时读:Swift 6.2 起的并发规则、默认主线程隔离、数据竞争的修法,以及模型常写成旧样子的新写法
Skill by Suge8
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/suge8-write-swift
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/write-swift
What's inside
- Skill name
write-swift- Description
- 写、审查或迁移 Swift 时读:Swift 6.2 起的并发规则、默认主线程隔离、数据竞争的修法,以及模型常写成旧样子的新写法
- License
- MIT
- Instructions
- 39 lines in SKILL.md · view on GitHub
Files (2)
- NOTICE.md
- SKILL.md
SKILL.md (first lines)
# Write Swift
以项目工具链为准:下文到 Swift 6.3 都可用;标 ⚠ 的属于未发布的 6.4,确认工具链后才用。
## 默认
从最简单、最静态、单线程的写法起步,说得出理由才往下走一档:
- `struct`/`enum` 优先于 `class`;互斥状态用一个 `enum`,不用一组可选属性。
- 具体类型优先;出现跨类型的重复代码才抽协议,没有逐类型定制的协议改成约束扩展。
- `some P` 优先;要存放异构类型才用 `any P`。
- 主线程同步代码优先;Instruments 显示卡顿才 `async` → `@concurrent` → `actor`。
## 并发(Swift 6.2 起)
- `async` 不再自动离开当前 actor,在调用处的隔离上运行。把自己的计算挪到后台用 `@concurrent`;库 API 用 `nonisolated`,让调用方决定在哪跑。
- App 与界面模块开 Approachable Concurrency 和 Default Actor Isolation = MainActor(包里 `.defaultIsolation(MainActor.self)`);通用库不开。开了之后类型与函数上不再写 `@MainActor`,只在默认隔离管不到处写:函数类型与回调参数、`nonisolated` 类型里的成员、非主线程回调里起的 `Task`。
- 修数据竞争按顺序:不共享(每个并发任务用自己的实例)→ 改成 Sendable 值类型 → 隔离到 actor → 最后才用 `Synchronization` 的 `Mutex`/`Atomic`(放在 `let` 里)或 `@unchecked Sendable`。不用 `NSLock`、`DispatchSemaphore`;跨 `await` 不持锁。
- 每个 `await` 都是挂起点,回来后重新检查前提;actor 的状态修改放在同步段里,actor 不保证先进先出。
- 结构化并发优先:固定个数用 `async let`,动态个数用有上限的 `withTaskGroup`,无返回值用 `withDiscardingTaskGroup`;`Task {}` 只给挂在界面事件上的工作,几乎不用 `Task.detached`。取消是协作的,开始昂贵工作前检查。
- 回调桥接:`withCheckedContinuation` 每条路径恰好 resume 一次;委托式 API 包成 `AsyncStream`,在 `onTermination` 里清理。
- SwiftUI 签名带 `@Sendable` 的闭包(`visualEffect`、`Shape.path`、`Layout`、`onGeometryChange`)可能不在主线程:捕获要用的值,不捕获 `self`。手势、滚动回调里的动画状态同步改,长耗时工作再开 `Task`。
## 新写法
| 不写 | 写 |
|---|---|
| `ObservableObject` + `@Published` | `@Observable` |
| 轮询对象的变化 | `Observations { }` |
| `NSLock`、串行队列加锁 | `Mutex` |
| `withUnsafeBufferPointer` | `.span` / `RawSpan` / `OutputSpan` |
| 热路径里固定大小的 `Array` | `InlineArray<N, T>` |
| 立即调用的闭包初始化 `let`、嵌套三元 | `if` / `switch` 表达式 |
| 手算字符串下标 | Swift Regex;日期、数字组合 Foundation 的解析器 |
| `XCTestCase` + `XCTAssert*` | Swift Testing:`@Test`、`#expect`、`try #require`、`@Test(arguments:)` |
| `print` | `Logger`;非数字插值默认脱敏,确定不涉隐私才 `privacy: .public` |
| ⚠ `@available(anyAppleOS:)`、`mapKeyedValues`、`weak let`、`@diagnose`、Task 取消屏蔽 | 工具链确认 6.4 后才用 |From Suge8/friedbun, MIT.
More from Suge8/friedbun
- 0.633score
ui-picks
Suge8
UI 库选型表:做界面时按场景从表里取组件移植进项目,覆盖装饰特效、卡片编排、状态转场、微交互小件、产品控件、营销/仪表盘块、技术图解与主视觉、AI 聊天界面、界面音效
SkillAFreshness: A★ 12Claude Code +9 - 0.631score
ship
Suge8
发布/提交流程:用户说 ship、发布、提交、推送、commit、更新版号、changelog、打 tag、开源准备时使用,凡是要把工作区改动变成提交/版本/Release 的时刻都算,即使用户只说了"提交一下"。按仓库自身风格做细粒度原子提交、更新版本与 changelog、盯 CI 到绿。不用于:写代码、修…
SkillAFreshness: A★ 12Claude Code +9 - 0.630score
post
Suge8
把实测数据或经验写成社媒帖:核数、按平台语言写文案、出数据图、排期发布并回查
SkillAFreshness: A★ 12Claude Code +9 - 0.630score
project-setup
Suge8
项目体检:新项目开工、半途补缺、开源前检查或“这个项目缺什么”。盘点文档骨架、工单约定与验证链,报告缺口,确认后补齐。
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
ui-craft
Suge8
新建、重设计、打磨或审查界面(页面、组件、弹层、落地页)时读,也用于单项的动效、配色、排版、图标、表单反馈、无障碍与移动端适配
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
video
Suge8
视频统一入口:把主题策划成运动优先的动画,用 Remotion 实现、配声音、检查并渲染成片,或通过 Grok/Seedance 直接生成带音轨 MP4
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
promo
Suge8
制作项目宣传物料:Hero/OG/社媒图、商店截图、README 配图和演示 GIF/视频。根据项目现状产出到 design/promo/;应用 UI 用 ui-craft,单独 Logo 用 gpt-image。
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
better-browser-use
Suge8
操作和调试网页:导航、点击、填写、snapshot、截图、console、network;需要用户登录态或反检测的站点、用户要预览 dev server 时同样用它。
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
fan-out
Suge8
调研、审计、设计探索拆给子代理并行的低中高三档;research、grilling、architecture-audit、better-test 按档引用,用户也可直接点档位。
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
better-test
Suge8
验证改动、写测试、审查或清理测试时使用:验证方法、什么测试值得留、端到端测试写法、DELETE/REWRITE/KEEP 判决。
SkillAFreshness: A★ 12Claude Code +9 - 0.626score
herdr
Suge8
控制 Herdr 终端复用器。只有用户明确提到 Herdr,或明确要求使用 Herdr 查看或控制 pane、tab、workspace、命令或 agent 时才使用。不能仅因任务适合后台终端、委派或并行工作就使用。需要在受管 pane 内运行(HERDR_ENV=1)。
SkillAFreshness: A★ 12Claude Code +9 - 0.625score
writing-for-agents
Suge8
写、改或审查给 agent 读的文档时使用:skill、AGENTS.md、术语表与项目文档。
SkillAFreshness: A★ 12Claude Code +9
Signals
- Stars
- 12
- Forks
- 4
- Open issues
- 0
- Last commit (this folder)
- Oct 12, 2026 (16 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Suge8/friedbun
- Website
- x.com/Suge_dif
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Suge8
- 0.633score
ui-picks
Suge8
UI 库选型表:做界面时按场景从表里取组件移植进项目,覆盖装饰特效、卡片编排、状态转场、微交互小件、产品控件、营销/仪表盘块、技术图解与主视觉、AI 聊天界面、界面音效
SkillAFreshness: A★ 12Claude Code +9 - 0.631score
ship
Suge8
发布/提交流程:用户说 ship、发布、提交、推送、commit、更新版号、changelog、打 tag、开源准备时使用,凡是要把工作区改动变成提交/版本/Release 的时刻都算,即使用户只说了"提交一下"。按仓库自身风格做细粒度原子提交、更新版本与 changelog、盯 CI 到绿。不用于:写代码、修…
SkillAFreshness: A★ 12Claude Code +9 - 0.630score
post
Suge8
把实测数据或经验写成社媒帖:核数、按平台语言写文案、出数据图、排期发布并回查
SkillAFreshness: A★ 12Claude Code +9 - 0.630score
project-setup
Suge8
项目体检:新项目开工、半途补缺、开源前检查或“这个项目缺什么”。盘点文档骨架、工单约定与验证链,报告缺口,确认后补齐。
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
promo
Suge8
制作项目宣传物料:Hero/OG/社媒图、商店截图、README 配图和演示 GIF/视频。根据项目现状产出到 design/promo/;应用 UI 用 ui-craft,单独 Logo 用 gpt-image。
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
video
Suge8
视频统一入口:把主题策划成运动优先的动画,用 Remotion 实现、配声音、检查并渲染成片,或通过 Grok/Seedance 直接生成带音轨 MP4
SkillAFreshness: A★ 12Claude Code +9
Cite this page
write-swift skill. Agent Mart. https://agentmart.dev/skills/suge8-write-swift (last updated 2026-10-24)