> Sourced from [ZeroPointSix/empathize-with-others](https://github.com/ZeroPointSix/empathize-with-others) — [Apache-2.0](https://github.com/ZeroPointSix/empathize-with-others/blob/6792ab78cddfeafd70b66eb2051842cc28f1705a/domain/CLAUDE.md). # CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## 项目概览 **共情AI助手 (Empathy AI)** - Android 隐私优先智能社交沟通辅助应用 - **架构**: Clean Architecture + MVVM + Jetpack Compose - **语言**: Kotlin 2.0.21 (K2 Compiler) - **版本**: v1.14.17 (versionCode: 11417, dev) - **模块**: `:domain` | `:data` | `:presentation` | `:app` - **平台**: Android (minSdk 24, targetSdk 35) - **当前分支**: main ## 常用命令 ```bash # 构建 (Windows) gradlew.bat assembleDebug gradlew.bat assembleRelease gradlew.bat installDebug # 测试 gradlew.bat test gradlew.bat :domain:test gradlew.bat :data:test gradlew.bat :presentation:test gradlew.bat :presentation:testDebugUnitTest --tests "*BUG00058*" gradlew.bat connectedAndroidTest # 清理 gradlew.bat clean ``` ## 架构 ``` :domain/ -> 纯 Kotlin 业务逻辑、UseCase、Repository 接口 (无 Android 依赖) :data/ -> Room DB、Retrofit、Repository 实现、DI :presentation/ -> Compose UI、ViewModel、Navigation、Theme (依赖 :domain) :app/ -> Application 入口、Service、通知、应用级 DI ``` **依赖规则**: `app` -> `data`/`presentation` -> `domain`。`domain` 层**严禁**依赖 Android SDK。 **数据流**: UI -> ViewModel -> UseCase -> Repository (Interface) -> Repository (Impl) -> Data Source ## 关键规则 1. **状态管理**: 使用 `StateFlow` + `data class UiState` 2. **错误处理**: 统一使用 `Result<T>` 3. **协程**: ViewModel 用 `viewModelScope`,Compose 用 `rememberCoroutineScope`,**严禁** `GlobalScope` 4. **数据库**: Room Schema 变更必须伴随 Migration 脚本 (`MIGRATION_x_y`) 和测试 - 迁移测试集中在 `app/src/androidTest-disabled` 5. **UI 组件**: 优先复用 `presentation/ui/component/` 下的组件,保持 iOS 风格一致性 6. **文档语言**: 所有文档和回答必须使用中文(代码注释保持英文) 7. **发布流程**: 每次发布必须提供详细 Release 日志(功能/修复/变更/测试),完成 `assembleRelease` 构建并安装启动验证;设备不可用时需先说明并征询用户处理方式 ## Git 工作流(发布) 发布必须遵循以下流程并记录到版本历史: - **Release 日志**:GitHub Release 页面必须包含详细发布介绍(新功能/修复/变更/测试)。如提交前缀未体现新功能,必须手动补齐说明。 - **版本历史同步**:`config/version-history.json` 的 changelog 必须与 Release 说明一致,明确本次新增功能与变更。 - **构建与安装**:必须 `assembleRelease` 成功并完成安装启动验证;设备不可用时先说明并征询处理方式。 ## 导航 - 单一 Activity (`MainActivity`) + Compose Navigation - 路由定义: `presentation/navigation/NavRoutes.kt` - 路由图: `presentation/navigation/NavGraph.kt` - 底部 Tab: CONTACT_LIST / AI_ADVISOR / SETTINGS ## 技术栈 | 类别 | 技术 | 版本 | |------|------|------| | 构建 | Gradle | 8.13 | | 编译 | AGP | 8.7.3 | | 语言 | Kotlin | 2.0.21 | | DI | Hilt | 2.52 | | UI | Jetpack Compose | BOM 2024.12.01 | | 数据库 | Room | 2.6.1 | | 网络 | Retrofit + OkHttp | 2.11.0 / 4.12.0 | | JSON | Moshi | 1.15.1 | | 异步 | Coroutines | 1.9.0 | ## AI 服务商预设 - OpenAI GPT-4 / GPT-3.5 - Google Gemini Pro - DeepSeek - 自定义 OpenAI 兼容服务商 ## 数据库 - **版本**: Room v17(迁移 1→17) - **位置**: `data/src/main/kotlin/com/empathy/ai/data/local/AppDatabase.kt` - **迁移**: `data/src/main/kotlin/com/empathy/ai/data/di/DatabaseModule.kt` - **核心表**: - `profiles` - 联系人画像 - `brain_tags` - 大脑标签 - `ai_providers` - AI 服务商配置 - `conversation_logs` - 对话记录 - `conversation_topics` - 对话主题 - `daily_summaries` - 每日总结 - `failed_summary_tasks` - 失败任务 - `api_usage_records` - 用量记录 - `ai_advisor_sessions/conversations/message_blocks` - AI 军师会话 ## 组件系统 | 层级 | 示例 | 说明 | |------|------|------| | 原子组件 | `IosButton`, `IosTextField` | 基础UI单元 | | 分子组件 | `IosSearchBar`, `ModernPersonaTab` | 组合原子组件 | | 有机体组件 | `FactStreamCard`, `EmotionTimelineView` | 复杂业务逻辑 | | 模板组件 | `AiAdvisorChatScreen` | 页面级组合 | ## 任务协作 **强制**: 开始任务前读取 `WORKSPACE.md` 检查冲突并记录任务开始。 **多AI工具协作**: - **Codex**: Free Explorer(功能开发、Bug修复) - **Roo**: Review(代码审查) - **Kiro**: Code & Debug(代码与调试) - **Multi-Agent Explorer**: 独立工作树并行开发 **工作树管理**: ```bash # 创建新工作树 git worktree add ../feature-branch main # 列出所有工作树 git worktree list # 清理已合并的工作树 git worktree prune ``` 文档位置: - BUG 文档: `文档/开发文档/BUG/` - 测试用例: `文档/开发文档/TE/` - 需求文档: `文档/开发文档/PRD/` - 规范文档: `文档/规范文档/` ## 构建优化 `gradle.properties` 已配置: - 并行构建: `org.gradle.parallel=true` - 构建缓存: `org.gradle.caching=true` - JVM 内存: `-Xmx4g -Xms1g` - 最大工作线程: `org.gradle.workers.max=8` - Kotlin 增量编译: 已启用 ## 重要文件位置 - **构建配置**: `build.gradle.kts`, `settings.gradle.kts`, `gradle.properties` - **版本管理**: `config/version-history.json`, `buildSrc/src/main/kotlin/com/empathy/ai/build/VersionUpdatePlugin.kt` - **依赖声明**: `gradle/libs.versions.toml` - **导航系统**: `presentation/navigation/NavGraph.kt`, `presentation/navigation/NavRoutes.kt` - **DI 配置**: `data/src/main/kotlin/com/empathy/ai/data/di/` + `app/src/main/java/com/empathy/ai/di/` - **数据库**: `data/src/main/kotlin/com/empathy/ai/data/local/AppDatabase.kt` - **AI 军师模块**: `presentation/ui/screen/advisor/`, `domain/model/AiAdvisor*.kt` - **提示词场景**: `domain/model/PromptScene.kt` - **服务商预设**: `domain/model/ProviderPresets.kt` - **悬浮窗服务**: `app/src/main/java/com/empathy/ai/service/FloatingWindowService.kt` - **工作空间**: `WORKSPACE.md` - **决策日志**: `DECISION_JOURNAL.md`
Add to your project
Paste into your project's CLAUDE.md or ~/.claude/CLAUDE.md for global rules.
More for Java
Lerna CLAUDE.md
by @lerna
Lerna is a fast, modern build system for managing and publishing multiple JavaScript/TypeScript packages from the same repository.
Transcriber CLAUDE.md
by @kossakovsky
Automated video-to-text transcription powered by ElevenLabs Scribe API with multi-language support and speaker diarization
Flxify CLAUDE.md
by @ahmedeltaweel
Flxify is a Swiss Army knife for developers — a lightweight, privacy-first text transformation tool built with no frameworks and zero external dependencies.
Go Util CLAUDE.md
by @mzzsfy
一些自用的go工具
Markdown Flow CLAUDE.md
by @ai-shifu
MarkdownFlow extends standard Markdown with AI to create personalized, interactive documents. Tagline: "Write Once, Deliver Personally"
N8n Install CLAUDE.md
by @kossakovsky
🚀 Self-hosted AI automation platform. Deploy n8n, Ollama, Flowise, RAG, Supabase & 30+ tools with one command. Auto HTTPS. Free Zapier/Make alternative.
MCP servers for Java
eyaltoledano/claude-task-master
📇 ☁️ 🏠 - AI-powered task management system for AI-driven development. Features PRD parsing, task expansion, multi-provider support (Claude, OpenAI, Gemini, Perplexity, xAI), and selective tool loadi
PipedreamHQ/pipedream
☁️ 🏠 - Connect with 2,500 APIs with 8,000+ prebuilt tools, and manage servers for your users, in your own app.
LaurieWired/GhidraMCP
☕ 🏠 - A Model Context Protocol server for Ghidra that enables LLMs to autonomously reverse engineer applications. Provides tools for decompiling binaries, renaming methods and data, and listing metho
Get the Claude Code Starter Pack
Top CLAUDE.md rules for Next.js, TypeScript, Python, Go, and React — free.
