> swift-language

Apply Optionals, Protocols, Extensions, and Type Safety patterns in Swift. Use when working with Swift Optionals, Protocols, Extensions, or type-safe APIs. (triggers: **/*.swift, protocol, extension, optional, guard, enum)

fetch
$curl "https://skillshub.wtf/HoangNguyen0403/agent-skills-standard/swift-language?format=md"
SKILL.mdswift-language

Swift Language Standards

Priority: P0

Implementation Guidelines

Optionals & Safety

  • Never Force Unwrap: Use guard let, if let, or nil coalescing (??) to safely unwrap.
  • Nil Comparison: Use value != nil instead of if let _ = value.
  • Implicitly Unwrapped: Avoid Type!. Use proper Type?.

Protocols & Extensions

  • Protocols as Blueprints: Protocols define a blueprint; classes inherit implementation.
  • Composition over Inheritance: Prefer protocol composition with structs for better decoupling and performance.
  • Extensions: Implement conformance in an extension: extension MyType: MyProtocol { ... }. Use extensions for clean code organization, not storage (do not use extensions for stored properties).
  • Protocol Witnesses: Explicitly implement all required members to satisfy the witness table.

Type Safety

  • Avoid Any: Use generics or associated types instead for compile-time safety.
  • Enums: Prefer enums with associated values over multiple Optionals. Extract values via a switch statement (e.g., case .success(let value):).
  • Value Types: Default to struct for value semantics and thread safety. Use class only when reference identity is necessary or for inheritance. Structs are copied; classes are shared.

Anti-Patterns

  • No ! operator: Use safe unwrapping.
  • No -1 for failure: Use Optional.
  • No force cast (as!): Use conditional cast (as?).

References

> related_skills --same-repo

> common-store-changelog

Generate user-facing release notes for the Apple App Store and Google Play Store by collecting git history, triaging user-impacting changes, and drafting store-compliant changelogs. Enforces character limits (App Store ≤4000, Google Play ≤500), tone, and bullet format. Use when generating release notes, app store changelog, play store release, what's new, or version release notes for any mobile app. (triggers: generate changelog, app store notes, play store release, what's new, release notes, ve

> golang-tooling

Go developer toolchain — gopls LSP diagnostics, linting, formatting, and vet. Use when setting up Go tooling, running linters, or integrating gopls with Claude Code. (triggers: gopls, golangci-lint, golangci.yml, go vet, goimports, staticcheck, go tooling, go lint)

> common-ui-design

Design distinctive, production-grade frontend UI with bold aesthetic choices. Use when building web components, pages, interfaces, dashboards, or applications in any framework (React, Next.js, Angular, Vue, HTML/CSS). (triggers: build a page, create a component, design a dashboard, landing page, UI for, build a layout, make it look good, improve the design, build UI, create interface, design screen)

> common-owasp

OWASP Top 10 audit checklist for Web Applications (2021) and APIs (2023). Load during any security review, PR review, or codebase audit touching web, mobile backend, or API code. (triggers: security review, OWASP, broken access control, IDOR, BOLA, injection, broken auth, API review, authorization, access control)

┌ stats

installs/wk0
░░░░░░░░░░
github stars452
██████████
first seenMar 17, 2026
└────────────

┌ repo

HoangNguyen0403/agent-skills-standard
by HoangNguyen0403
└────────────