🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
3.0 KiB
3.0 KiB
Live Photo Studio
Bundle ID: xyz.let5see.livephotomaker
最低支持: iOS/iPadOS 18.0
技术栈: SwiftUI + Swift Concurrency + Core ML
语言:responses in Chinese
项目结构
Sources/LivePhotoCore/ # 核心库 (Swift Package)
to-live-photo/to-live-photo/
├── Views/ # Home → Editor → Processing → Result
├── AppState.swift # 全局状态
└── DesignSystem.swift # Soft UI 设计令牌
构建命令
# 模拟器构建
xcodebuild -scheme to-live-photo -destination 'platform=iOS Simulator,name=iPhone 16 Pro' build
# Archive
xcodebuild -scheme to-live-photo -configuration Release -destination 'generic/platform=iOS' -archivePath build/to-live-photo.xcarchive archive
Git 规范
提交类型
feat: 新功能fix: 修复已有功能的缺陷refactor: 重构(行为不变)chore: 构建、依赖、工具docs: 仅文档
分支策略
- 直接 main: 文档、注释、单文件小修复、配置微调
- 新建分支: 新功能、涉及 ≥3 文件的改动、实验性尝试
提交前检查
xcodebuild build无错误- UI 改动需在模拟器运行验证
- 单次提交只做一件事
禁止事项
- 不修改:
Info.plist版本号、Package.resolved - 不新增: 依赖库(需明确授权)
- 不创建: 仅用一次的工具类/文件
- 不重构: 与当前任务无关的代码
- 不执行: 破坏性删除命令(如 rm -rf 涉及 ~ 或 / 路径)
执行安全
- 执行前评估: 命令是否可能挂起(交互式、网络依赖、长耗时)
- 禁止交互式: 不使用
-i标志或需要 stdin 输入的命令 - 长任务策略: 后台执行 + 超时设置 + 进度监控
- 阻塞处理: 若命令超过预期时间无响应,主动中断而非无限等待
代码规范
- 遵循
DesignSystem.swift令牌,禁止硬编码颜色/间距 - 新增 View 必须包含
accessibilityLabel - 新增 View 必须适配深色模式和 iPad
- 触控目标 ≥ 44pt
- 错误处理使用
LivePhotoError枚举,禁止裸throw
文档管理
核心原则
不创建需要手工同步的文档。如果信息会随代码变化,要么让代码自描述,要么接受文档必然过时。
文档分类
| 类型 | 文件 | 更新策略 |
|---|---|---|
| 宪法 | CLAUDE.md |
谨慎修改,每次变更需明确意图 |
| 任务 | TASK.md |
活跃更新,追踪里程碑进度 |
| 运维 | docs/TEST_MATRIX.md, docs/USER_GUIDE.md |
随功能<EFBFBD><EFBFBD><EFBFBD>更同步更新 |
| 上架 | docs/APP_STORE_METADATA.md |
版本发布前更新 |
| 归档 | docs/archive/ |
只读,不再更新 |
禁止创建
- 目录结构文档(如 PROJECT_STRUCTURE.md)— 代码即结构
- 文档索引(如 docs_index.md)— 直接浏览 docs/ 目录
- 任何需要"记得同步"的描述性文档
更新触发
- 新增/修改功能 → 同步
USER_GUIDE.md相关章节 - 新增测试场景 → 同步
TEST_MATRIX.md - 归档文档 → 不更新,保持历史原貌