swift-style

作者: contentstack

SwiftLint、Sources布局、Kanna/libxml2、平台、命名、此仓库中所有Swift代码的访问控制。

npx skills add https://github.com/contentstack/contentstack-utils-swift --skill swift-style

Swift style and repo layout – Contentstack Utils Swift

When to use

  • Editing any Swift under Sources/ or Tests/.
  • Adding files or changing platform/deployment assumptions.

Tooling

  • Run SwiftLint with .swiftlint.yml. Do not relax rules for new code without team agreement.
  • Sources/Kanna/ is excluded from SwiftLint—do not copy patterns into Sources/ContentstackUtils/ that would fail lint there.

Package layout

  • Library code: Sources/ContentstackUtils/.
  • Vendored Kanna: Sources/Kanna/—treat as third-party unless you are deliberately upgrading the vendored copy; prefer fixes in ContentstackUtils or documented Kanna upgrades.

Platforms and libxml2

  • Deployment targets: macOS 10.13+, iOS/tvOS 11+, watchOS 4+ (Package.swift). Avoid newer SDK-only APIs without availability checks or a deliberate target bump.
  • libxml2: Apple platforms use system libxml where applicable; Linux uses the libxml2 system target and pkg-config. Keep Modules/ and Package.swift conditionals in sync when changing platform support.

Naming and API surface

  • Swift conventions: types UpperCamelCase, members lowerCamelCase.
  • Preserve established public names even when imperfect (e.g. historical typos) unless doing a semver-major cleanup with maintainer agreement.

Imports and access control

  • import Foundation as needed; HTML parsing follows existing Kanna usage in this package.
  • Mark public / open intentionally; keep implementation internal or private unless tests use established @testable patterns.

References

  • skills/framework/SKILL.md (SPM, podspec, CI)
  • skills/testing/SKILL.md (lint exclusions in tests)

来自 contentstack 的更多技能

brand-kit-assistant
contentstack
就Contentstack Brand Kit的概念、设置、治理及品牌化AI生成向用户提供建议。将API相关任务路由到正确的Brand Kit功能或…
official
cms-assets
contentstack
为开发人员提供关于在Contentstack中组织、交付和转换资产的建议。涵盖文件夹结构、Image Delivery API转换、发布……
official
cms-branches-aliases
contentstack
指导开发者使用Contentstack分支进行隔离的内容开发,并使用别名实现零停机的内容部署。涵盖分支策略、…
official
cms-data-modeling-best-practices
contentstack
指导开发者在Contentstack中使用最简单可复用的结构来建模内容。该技能解释了何时使用内容类型、引用、全局…
official
cms-entries
contentstack
为开发者提供关于查询、本地化、版本管理、发布和构建Contentstack条目的建议,以实现高效交付。重点关注CDA的使用、引用……
official
cms-environments-publishing
contentstack
为开发人员提供关于配置环境、发布内容、使用交付和预览令牌、利用Sync API以及了解CDN和…的建议
official
cms-live-preview-visual-builder-support-assistant
contentstack
诊断并指导Contentstack Live Preview和Visual Builder的实施。追踪预览上下文,识别损坏的契约,并推荐…
official
cms-localization
contentstack
为开发人员提供Contentstack本地化建议:语言设置、回退链、本地化与未本地化条目、不可本地化字段及多语言环境…
official