Files
mindfulness/spec_kit/overview.md
2026-01-28 22:13:55 +08:00

50 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Spec Kit Overview
本文件用于简短记录当前项目每个 spec 的核心内容摘要,便于快速总览与追踪变更。
## Client Bootstrap
- **目标**:初始化正念 APP 客户端工程规范,确保可运行、可切环境、可多语言扩展、目录标准化、可 EAS 打包
- **核心范围**:客户端工程骨架与文档(`client/README.md`、环境变量约定、i18nCN/EN/ES/PT/TC、推送/小组件/卡片滑动的一期能力约束
- **主要约定**
- 环境:`.env.dev` / `.env.prod`,推荐 `EXPO_PUBLIC_` 前缀
- 语言码:`zh-CN/en/es/pt/zh-TW`
- 目录:`app/`(可选 expo-router+ `src/`features/services/store/utils 等)+ `assets/`
- 打包EAS Builddev/prod bundle id 约定
- **阶段产物**
- `spec_kit/Client Bootstrap/spec.md`
- `spec_kit/Client Bootstrap/plan.md`
- `spec_kit/Client Bootstrap/tasks.md`
- **已完成编码(阶段性)**
- Expo 工程已在 `client/` 初始化,并完成 `pnpm install`
- i18n 基座已接入5 份语言资源 + 设备语言优先/设置可切换/持久化 + 入口初始化
## Project Bootstrap
- **目标**:完成项目仓库初始化与工程约定落地,明确 client/server 结构、dev/pro 环境隔离、MySQL/Redis 资源命名与访问边界
- **核心范围**根目录结构与文档、dev/pro 配置策略、MySQL schema 命名(`mindfulness_dev`/`mindfulness`、Redis ACL + key 前缀隔离(`dev:*`/`pro:*`
- **主要约定**
- MySQLprod=`mindfulness`dev=`mindfulness_dev`,统一 `utf8mb4` 与 snake_case
- Redis单实例通过 ACL 限制不同用户只能访问对应前缀;应用侧强制 key 使用 `dev:`/`pro:` 前缀
- 安全:真实 IP/账号/密码/Token 不写入仓库,仅提供 `.env.example` 结构
- **阶段产物**
- `spec_kit/Project Bootstrap/spec.md`
## Onboarding App Shell
- **目标**落地首次进入体验Onboarding 35 页可跳过 + Push 设置可跳过)与主应用壳(点赞/讨厌、收藏夹入口、通用设置入口)
- **核心范围**Onboarding 多页流程、Push 引导页、主界面反应操作Like/Dislike、收藏夹、设置页版本、iOS 小组件入口/说明)
- **阶段产物**
- `spec_kit/Onboarding App Shell/spec.md`
- `spec_kit/Onboarding App Shell/plan.md`
- `spec_kit/Onboarding App Shell/tasks.md`
## iOS Widget
- **目标**:实现真正的 iOS 桌面小组件WidgetKit Extension展示美观文案并与 App 共享数据
- **核心范围**WidgetKit 扩展、App Group 数据共享、尺寸适配Small/Medium/Large、点击跳转回 App
- **阶段产物**
- `spec_kit/iOS Widget/spec.md`
- `spec_kit/iOS Widget/plan.md`
- `spec_kit/iOS Widget/tasks.md`