Files
egret-app-template/AGENTS.md
2025-10-15 14:39:19 +08:00

4.8 KiB
Raw Permalink Blame History

核心目标

基于提供的工程模板架构智能解析用户的JSON格式需求自动生成完整的node应用及移动端Web应用。确保生成的代码具备以下特性:

  • 完整性: 包含前后端完整功能实现 (也可能没有前端,是纯后端项目)
  • 可运行性: 代码即拆即用,无需额外修改
  • 规范性: 严格遵循模板的技术栈和编码规范
  • 部署就绪: 自动构建生成可直接部署的工程产物

最终目标:运行 yarn build 并生成部署产物,没有失败报错

实现策略

1. 前端实现策略

  • 基于响应式设计的单页应用SPA
  • 专为移动端优化,采用单一入口点架构,所有功能模块通过组件化方式在同一页面内动态加载和切换,确保用户体验的连贯性和加载性能的优化
  • 主题适配: 确保组件支持亮色/暗色主题
    • 确保页面背景色、文字色、按钮色等UI元素在不同主题下均有良好对比度和可读性
    • 但是页面上不要展示主题切换按钮主题切换根据url参数 ?theme=dark?theme=light 来控制
  • 错误展示前端页面需要有统一的错误展示用于显示API请求失败或其他操作错误的信息
  • 不需要实现登录页,默认访问应用的用户都是已登录状态
  • 所有请求统一使用 /src/api/index 中的 api 方法进行调用,因为已经内置了必要的请求头封装
  • 如果有需要,使用 /src/api/user 中的 getUserInfo 方法获取当前用户信息
  • 如果有需要,使用 /src/api/user 中的 getGroupMembers 方法获取全部用户信息列表

2. 后端实现策略

  • 所有接口以 /api 为前缀
  • 所有接口按照 tsoa 规范来编写,参考 src/controllers 目录下的 UserControllerGroupController 示例
  • 如果接口需要登录,请使用 @Security('jwt') 装饰器tsoa 会自动调用登录校验,并把 user 信息写到req上参考 UserController 示例
  • 每个接口相关的类型定义(如interface、type)等都需要按照标准注释进行类型及字段的描述注释。不明确的字段如string类型的日期等还需要加上 @example 表明字段具体的格式示例,例如:
    /**
     * 用户ID
     * @example "123456"
     */
    id: string;
    /**
    * 注册日期格式为yyyy-MM-dd
    * @example "2025-01-01"
    */
    registryDate: string;
    

3. 开发规范

  • 文件命名: 使用kebab-case命名文件和文件夹
  • 组件命名: React组件使用PascalCase
  • API设计: 遵循RESTful设计原则返回统一的JSON格式
  • 类型定义: 为所有数据结构定义TypeScript类型
  • 代码组织: 保持清晰的目录结构和模块化设计

4. 设计规范

  • 响应式: 确保所有页面在不同屏幕尺寸下均有良好展示效果
  • 滚动条: 根据屏幕宽度变化自适应,🈲禁止出现横向滚动条

任务执行流程

  1. 需求分析: 仔细解析JSON需求识别核心功能点
  2. 架构设计: 基于模板结构规划实现方案
  3. 数据建模: 根据data_models设计数据库表结构
  4. API设计: 根据api_endpoints设计RESTful接口
  5. 前端开发: 实现页面组件、路由、状态管理
  6. 后端开发: 实现数据模型、API端点、业务逻辑
  7. build: 调用build命令生成可部署的工程产物
    • 如果报错则修正错误后再次build直到成功
    • 禁止修改build命令

用户需求修改

请注意,用户可能会多次修改需求,每次修改后用户会重新给你最新的完整的JSON需求描述

用户每次修改后,请在现有代码基础上针对JSON中较上一次有变动的地方重点编辑实现,确保所有变更都被正确反映。

此外用户还可能通过 appBug 字段反馈bug如果 appBug 字段不为空字符串则必须优先修复对应的bug并确保修复后代码依然符合用户最新的JSON需求。

注意事项

  • 严格遵循现有的项目结构和编码规范
  • 确保前端页面适配移动端访问(响应式)
  • 保持API响应格式的一致性
  • 及时更新相关的TypeScript类型定义
  • 确保所有新增的页面都能正确路由和访问

请基于以上规范和用户JSON需求生成完整的、可运行的、符合输出格式要求的代码实现。

接下来我会输出用户JSON需求其中前端需求放在 webapp_requirements, 后端需求放在 node_backend_requirementsbug修复需求放在 appBug

如果 webapp_requirements 为 null代表不需要前端web页面或者web页面本次不需要变更只需要生成后端代码 如果 node_backend_requirements 为 null代表后端代码本次不需要变更 如果 appBug 不为空字符串,代表本次需要修复 bug