# Project Agent Guide ## 项目定位 这是一个面向个体户和手艺人的个人品牌小程序试点项目。当前第一个交付对象是朋友的真实品牌。 第一版的核心闭环是: ```text 品牌展示 -> 服务/作品了解 -> 客户预约或咨询 -> 管理员后台处理 -> 客户反馈 ``` 产品目标是帮助个人建立自己的品牌入口;后台和多品牌能力是实现手段,不要把项目优先级转向 SaaS、套餐、租户注册或平台流量。 ## 必读文档 开始开发或修改需求前,按以下顺序阅读: 0. `PROJECT_STATUS.md`:当前阶段、最近提交、下一步和未决问题;跨电脑恢复时优先阅读。 1. `docs/PRD.md`:产品范围、功能需求和验收标准。 2. `docs/01-prototype-spec.md`:页面、字段、状态和交互要求。 3. `docs/02-architecture-and-decisions.md`:技术选型和架构决策。 4. `docs/03-data-and-api-design.md`:数据模型、接口边界和上传流程。 5. `docs/04-implementation-plan.md`:里程碑、测试和发布清单。 6. `docs/05-pilot-case-food-stall.md`:当前首个试点的餐饮场景假设和待确认内容。 7. `docs/06-domain-extension-strategy.md`:个人品牌核心能力与行业扩展边界。 8. `docs/07-requirements-interview-decisions.md`:首轮访谈确认的订单与客户身份规则;冲突时优先于早期文档。 9. `docs/08-clickable-prototype.md`:低保真原型入口、演练路径和边界。 ## 已安装的成熟 Skills 项目当前复用以下外部 skill,不重复维护同类自定义规则: - `playwright-testing`:仅在编写或调试 Playwright E2E 测试时使用。重点遵循用户可见角色/标签定位、Page Object、失败截图和 trace。 - `codex-review-workflow`:在用户要求代码审查、自动质量验证,或功能完成需要正式 review 时使用。默认最多执行初审和一次复审,不把它用于普通探索任务。 这两个 skill 安装在用户级 `/Users/que01/.agents/skills/`,不属于项目源码。项目规则、产品边界和技术决策仍以本文件及 `docs/` 为准。 ## 当前已接受的技术决策 - Monorepo:`pnpm workspace + Turborepo` - 小程序:原生微信小程序 + TypeScript - 管理后台:Next.js + TypeScript - API:NestJS + TypeScript - 数据库:PostgreSQL - ORM:Prisma - 图片:S3 兼容对象存储 - 后台登录:第一版账号密码,未来可绑定微信身份 - 发布:第一版人工使用微信开发者工具发布 ## 第一版范围 必须实现: - 小程序首页、品牌介绍、服务、作品集 - 客户无需注册提交预约/咨询 - 公开内容匿名浏览;下单使用微信无感身份,并提供“我的订单”。 - 普通套餐支持数量、自取/配送和预计总价;私厨由经营者人工报价。 - 后台支持订单未读、标签和内部备忘。 - 客户提交反馈,后台审核后公开 - 后台登录和权限校验 - 品牌、服务、作品内容管理 - 预约列表、状态和内部备注 - 图片上传、预览和基本错误处理 明确不实现: - 支付、退款、发票、财务对账 - 订单和支付状态 - 自动发布微信小程序 - 多商户注册、套餐和计费 - 多员工、多门店、复杂排班 - 会员、优惠券、营销自动化 - 自动消息通知 价格可以作为展示文本;可以预留金额字段,但不得在第一版创建支付入口或支付状态。未来支付应使用独立的 `Order`、`Payment`、`Refund` 模型,不能把支付状态塞进 `Booking`。 ## 开发规则 - 先确认原型和字段,再修改数据库;不要根据临时页面直接添加字段。 - 公开 API 与管理 API 分离。 - 前端隐藏管理入口不是权限控制,所有管理接口必须服务端鉴权。 - 联系方式、预约备注等敏感数据不得从公开接口返回。 - 内容删除优先使用停用、隐藏或软删除,保留预约和审核记录。 - 新增功能必须说明用户问题、优先级、数据影响和是否影响支付兼容性。 - 不要为了未来 SaaS 过早实现租户注册、计费和复杂权限。 - 不要将品牌文案、服务和作品写死在前端代码中。 - 共享类型和状态枚举放在 `packages/`,避免前后端重复定义。 - 任何涉及真实客户数据的调试输出都必须脱敏。 ## 推荐目录 ```text apps/miniapp # 微信小程序 apps/admin # Next.js 管理后台 apps/api # NestJS API packages/types packages/api-client packages/validation packages/config prisma/ docs/ ``` ## 工作方式 每完成一个里程碑,都要验证对应闭环,而不是只检查页面是否能打开: 1. 后台保存品牌资料,小程序能看到更新。 2. 后台创建服务,小程序能展示并支持预约。 3. 客户提交预约,后台能看到并更新状态。 4. 客户提交反馈,后台审核后小程序才能展示。 5. 未登录用户无法修改任何管理数据。 真实朋友使用前,先完成文档中的发布前检查和数据库备份方案。试点上线后再根据实际使用频率决定是否抽象多品牌和自动化能力。 ## Vibe Coding 最小规范 以下规则用于控制后续 AI 辅助开发的范围和上下文成本。 ### 开始任务前 1. 先阅读本文件和与任务直接相关的文档,不要一次加载全部代码。 2. 用一句话写清楚本次任务的结果和不包含的内容。 3. 先搜索现有实现,再决定新增文件还是修改现有文件。 4. 涉及数据库、公共类型或 API 契约时,先检查调用方。 ### 实现任务时 - 一次只处理一个可验证的小目标。 - 优先复用现有模式,不为单一需求新增抽象层。 - 每次修改保持在必要文件范围内,不顺手重构无关代码。 - 先实现业务闭环,再补样式、优化和扩展能力。 - 不实现 PRD 明确排除的功能,除非用户明确改变范围。 - 新增依赖前说明用途、替代方案和维护成本。 - 不把临时数据、品牌文案或密钥写死在代码中。 ### 完成任务前 1. 运行与改动匹配的最小验证:类型检查、单元测试、API 测试或手工流程。 2. 检查错误状态、空状态、权限边界和重复提交。 3. 检查是否引入敏感信息、无关文件或未记录的数据库变更。 4. 用简短记录说明改了什么、为什么改、如何验证、剩余风险。 ### 上下文和 token 控制 - 默认只读取完成当前任务所需的文件。 - 大文件先搜索相关符号和行号,再读取局部内容。 - 不重复输出已经确定的背景和完整代码。 - 计划超过三个步骤时,先写出短计划再执行。 - 遇到不确定的产品决策,优先依据 PRD;PRD 没有覆盖时记录假设,不要扩大实现范围。 ### 任务完成定义 任务只有同时满足以下条件才算完成: - 代码或文档已落盘。 - 相关验证已执行,或明确说明无法执行的原因。 - 变更符合第一版范围和数据/API 约束。 - 用户能根据结果继续下一步工作。