用途:编辑该仓库 Sources/ 或 Tests/ 下任意 Swift 代码,或新增文件、变更平台与部署假设时使用。
工具链:使用 .swiftlint.yml 运行 SwiftLint。未经团队同意,不得对新代码放宽规则。Sources/Kanna/ 被排除在 SwiftLint 之外,不要将其中会 lint 失败的写法复制到 Sources/ContentstackUtils/。
包布局:库代码位于 Sources/ContentstackUtils/;内嵌的 Kanna 位于 Sources/Kanna/,除有意升级内嵌副本外应视作第三方,优先在 ContentstackUtils 中修复或按文档升级 Kanna。
平台与 libxml2:部署目标为 macOS 10.13+、iOS/tvOS 11+、watchOS 4+(见 Package.swift)。避免使用仅新 SDK 提供的 API,除非加可用性检查或有意提升目标。Apple 平台适用时使用系统 libxml;Linux 使用 libxml2 system target 与 pkg-config。变更平台支持时保持 Modules/ 与 Package.swift 条件同步。
命名与 API:类型用 UpperCamelCase,成员用 lowerCamelCase。即使既有公开名称不完美(如历史拼写错误)也应保留,除非与维护者达成一致做 semver-major 清理。
导入与访问控制:按需 import Foundation;HTML 解析沿用本包既有 Kanna 用法。谨慎标注 public / open,实现保持 internal 或 private,除非测试使用既有 @testable 模式。
参考:skills/framework/SKILL.md(SPM、podspec、CI),skills/testing/SKILL.md(测试中的 lint 排除)。