- 降级与 SDK 52 不兼容的包版本:expo-secure-store(55→13)、expo-linking 锁定 ~7.0.5、expo-image-manipulator 锁定 ~13.0.0 - 根 package.json 添加 pnpm overrides 锁定 expo-constants ~17.0.8,防止子依赖安装 SDK53+ 版本 - 修复 metro.config.js:强制 unstable_serverRoot 指向 projectRoot,解决 Windows 上 Gradle 入口文件相对路径与 Metro serverRoot 不一致的 bug;补充 monorepo watchFolders 和 nodeModulesPaths 配置 - CLAUDE.md 补充命令执行规则,明确 bash 语法优先、禁止输出命令让用户手动执行 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.3 KiB
2.3 KiB
react-phone-apps
项目蓝图
本项目使用 .blueprint/ 目录维护项目全景架构图,驱动需求讨论和任务管理。
对话开始时必须执行
- 读取
.blueprint/manifest.yaml了解项目全景和当前状态 - 读取
.blueprint/CONVENTIONS.md了解完整工作流规则
需求讨论 → 蓝图同步规则
| 用户说的 | Claude 应做的 |
|---|---|
| "我想加个 XX 功能" | 确认需求后:manifest 新增模块(status: concept),创建 .blueprint/modules/<id>.md |
| "XX 功能需要 A、B、C" | 在模块文件中拆分为任务卡 |
| "这个方案确定了" | 模块 status → planned,补充任务卡 files/acceptance |
| "开始做 XX" | 模块 status → in_progress |
| 没提蓝图但在讨论功能 | 主动提议更新蓝图 |
复杂度决策(讨论新功能 / 拆解需求时)
| complexity | 执行流程 |
|---|---|
| S / M | 直接拆任务卡,确保每张卡有 files + acceptance + complexity → 标记 📋 |
| L(复杂系统设计) | 先 /architect 输出设计文档,用户确认后 /splitter 拆成 S/M 任务卡 |
L 级任务禁止直接写代码,必须先经过
/architect→/splitter流程。
任务执行两阶段提交
- 开始写代码前:任务卡前缀改为 🔵,status → in_progress
- 完成验收后:任务卡前缀改为 ✅,status → done,更新 manifest
updated日期
完整规则(迭代管理、阻塞处理、复盘笔记等)详见 .blueprint/CONVENTIONS.md。
命令执行规则
禁止把命令输出给用户手动执行。 凡是需要运行的命令,直接用 Bash tool 自己执行。
pnpm install/ 依赖安装 → 直接跑,根目录或子包目录均可- Android 构建 → 用
run_in_background: true,避免阻塞;JAVA_HOME 用export内联设置:export JAVA_HOME="/c/Program Files/Android/Android Studio/jbr" && pnpm expo run:android --variant release - Windows 环境变量 → bash 语法用
export VAR=value,不用 PowerShell 的$env:VAR - 只有以下情况才让用户手动操作:需要交互式登录(如
gcloud auth login)、需要输入密码、或明确的破坏性操作需确认