# 贡献指南 ## 架构约束(提交前必须遵守) - 依赖单向:`App → feature → core`,禁止反向 import。 - Repository 协议只在 `CoreDomain`,实现在 `CoreRepository`。 - DTO 与领域 Model 分离(`CoreNetwork` / `CoreModel`)。 - 禁止命名模块 `CoreData`(与苹果框架撞名,统一为 `CoreRepository`)。 ## 代码规范 - 跨模块符号 `public` + `///` 文档注释。 - 领域模型标记 `Sendable`。 - ViewModel:`@MainActor @Observable`,UiState 用 `enum`。 - 登录态经 `SessionRepository` 驱动,不要在各页面各自维护登录态副本。 - 引入任何第三方依赖前,需在 PR 说明必要性(项目默认零第三方框架)。 ## 提交流程 1. 从 `dev` 新建分支:`feat/xxx`、`fix/xxx`(简化 GitFlow:feature 从 `dev` 拉、merge 回 `dev`,`dev` 稳定后再 merge 到 `main`)。 2. 本地跑通: ```bash swiftlint lint xcodebuild -project ios-client.xcodeproj -scheme ios-client \ -destination 'generic/platform=iOS Simulator' \ CODE_SIGNING_ALLOWED=NO build ``` 3. 发起 PR,至少一位 reviewer 通过后合并。 ## Commit 规范 采用 Conventional Commits:`feat:` / `fix:` / `refactor:` / `docs:` / `chore:`。