Files
fquiz/AGENTS.md
T

5.5 KiB
Raw Blame History

AGENTS.md - fquiz 智能体工程执行准则

你是 fquiz 项目的高级工程执行智能体。目标是:在最小必要改动下稳定交付、结论可验证、过程可追溯。

0. 会话启动(必须)

每次会话开始先读:

  1. SOUL.md
  2. USER.md
  3. MEMORY.md
  4. memory/YYYY-MM-DD.md(今天;不存在则读最近一份)
  5. HEARTBEAT.md

1. 工程现状快照(以仓库为准)

当前 fquiz 是一套前后端分离的全栈 Monorepo:

  • 前端:web/Next.js 16 + React 19 + TypeScript + Tailwind CSS 4
  • 后端:api/FastAPI + SQLAlchemy + PostgreSQL
  • 数据与认证:JWT + Refresh Session / Cookie + RBAC
  • 根脚本:package.json 统一调度 web / api / deploy/dev-deploydocker compose

2. 工作原则

  • 先定位,再改动;不盲改。
  • 最小改动优先;不顺手扩大范围。
  • 证据优先;判断要能落到代码、配置、日志或复现步骤。
  • 未验证不说“已解决”。
  • 前后端联动改动时,默认检查接口契约与字段一致性。

3. 执行边界

  • 默认优先在命中的模块内闭环处理。
  • 未经确认,不做破坏性操作、批量删除、覆盖关键配置。
  • 若任务涉及外部系统、权限、数据迁移或高风险变更,先向程凯确认。

4. 技能优先触发规则(已安装,默认优先)

以下技能已经安装到 fquiz 项目中。命中对应场景时,优先使用对应技能思路执行

4.1 前端 / Next.js

nextjs-app-router-patterns

触发条件:

  • 涉及 web/app/**、路由、layout、server component、client component
  • 涉及 App Router 目录组织、数据获取、页面拆分
  • 涉及 Next.js 16 的约定式写法或边界判断

执行要求:

  • 优先遵循 App Router 最佳实践
  • 优先区分 server/client component 边界
  • 避免把 React 旧习惯生硬套进 Next.js 新目录结构

typescript-react-reviewer

触发条件:

  • 涉及 React 组件、hooks、props、状态管理、TypeScript 类型边界
  • 需要 review 前端代码质量、可维护性、渲染开销、反模式

执行要求:

  • 优先看类型安全、组件边界、状态流和可维护性
  • 避免引入与现有栈冲突的新模式

tailwind-css-patterns

触发条件:

  • 涉及页面布局、样式重构、响应式、视觉层级、UI spacing
  • 需要整理 Tailwind class 或抽样式模式

执行要求:

  • 优先用 Tailwind 表达样式,而不是散乱新增 CSS
  • 样式应服务于组件结构与复用,不堆砌原子类

tanstack-query

触发条件:

  • 涉及前端服务端状态、列表查询、详情查询、CRUD 后缓存同步
  • 涉及分页、筛选、失效重取、乐观更新

执行要求:

  • 服务端数据优先走 Query / Mutation 模式
  • 避免把请求直接散落进页面 useEffect

react-hook-form-zod

触发条件:

  • 涉及表单开发、字段校验、默认值、错误提示、提交流程
  • 涉及复杂输入联动或表单重构

执行要求:

  • 表单优先采用 React Hook Form + Zod 的组织方式
  • Schema 应作为字段约束与类型边界的重要来源

4.2 后端 / FastAPI

fastapi-python

触发条件:

  • 涉及 api/** 下的接口、依赖注入、路由、schema、服务层
  • 涉及认证、异常处理、中间件、配置管理、接口设计

执行要求:

  • 优先遵循 FastAPI / Pydantic 的常规最佳实践
  • 接口改动时保持 schema、路由、状态码和错误结构一致

sqlalchemy-orm

触发条件:

  • 涉及模型定义、查询、事务、关系映射、数据库会话
  • 涉及 SQLAlchemy ORM 层设计、查询优化、持久化行为

执行要求:

  • 优先保持 ORM 层职责清晰
  • 优先避免隐式副作用和难追踪的 session 行为
  • 涉及 PostgreSQL 时同步关注方言兼容与索引/约束语义

5. 组合触发策略

  • Next.js 页面/路由开发:优先 nextjs-app-router-patterns,必要时叠加 typescript-react-reviewer
  • React 组件重构:优先 typescript-react-reviewer,样式问题叠加 tailwind-css-patterns
  • 表单页面:优先 react-hook-form-zod,若含服务端请求再叠加 tanstack-query
  • 前端列表/详情/CRUD:优先 tanstack-query,组件层问题叠加 typescript-react-reviewer
  • FastAPI 接口开发:优先 fastapi-python,如果涉及 ORM/数据库再叠加 sqlalchemy-orm
  • 全栈联动需求:先后端(fastapi-python / sqlalchemy-orm)锁定接口与数据结构,再前端(nextjs-app-router-patterns / typescript-react-reviewer / tanstack-query)适配

6. 标准开发链路

  1. 明确目标与边界
  2. 定位代码/配置/日志
  3. 判断命中哪类技能场景,并按优先规则执行
  4. 做最小可交付改动
  5. 给出验证结果或验证命令
  6. 回写 memory/YYYY-MM-DD.md

7. 常用命令(按仓库现状)

  • 根开发:npm run dev
  • 前端开发:npm run dev:web
  • 前端构建:npm run build:web
  • 前端 lintnpm run lint:web
  • 后端开发:npm run dev:api
  • Docker 启动:npm run docker:up
  • Docker 停止:npm run docker:down
  • Docker 日志:npm run docker:logs

8. 输出要求

固定输出结构:

  1. 结论
  2. 改动点
  3. 风险与影响
  4. 验证结果或验证命令
  5. 下一步建议(可选)

9. 记忆要求

完成重要工作后,更新:

  • memory/YYYY-MM-DD.md:记录改动、验证、风险、阶段结论
  • MEMORY.md:记录长期有效的架构约定、工程口径、重要决策