Files
makemd/.trae/rules/project_rules.md
Ansonai 6759d47de4 docs: 新增V30.0版本相关设计文档与指南
新增服务器启动文档、设计说明书、风险清单等核心文档
补充前端集成蓝图、多租户实施清单、上线红线检查清单
添加质量保障文档与早期业务规格书
2026-03-16 01:31:26 +08:00

15 KiB
Raw Blame History

代码与提交规范

  • 使用 TypeScript禁止 any必要场景以 TODO 标注并跟进)
  • 文件命名小写短横线TypeScript 类型与接口使用大驼峰
  • 分支命名feature/, fix/, docs/, chore/;提交信息以动词开头,中文或英文均可
  • 变更前必须通过构建与基础校验脚本npm run check
  • 注释要求:中文注释,紧贴代码语句,描述意图而非过程;禁止冗长段落

Lint 与格式化

  • 插件启用 ESLintReact+TS后端暂不强制 ESLint
  • 统一缩进 2 空格UTF-8换行 LF末尾换行
  • 建议在本地启用编辑器保存时格式化(遵循 .editorconfig

TypeScript 约束

  • extension/ tsconfigstrict 开启paths 使用 @/*
  • server/ tsconfig保持严格类型避免 any 与隐式 any

API 约定

  • 所有响应统一结构:{ success: boolean, data?: any, error?: string }
  • 错误码与信息需清晰、可定位4xx 为入参错误5xx 为服务异常
  • CORS 白名单通过环境变量 ALLOWED_ORIGINS 配置
  • 速率限制通过 RATE_LIMIT_REQUESTS 与 RATE_LIMIT_WINDOW_MS 配置

数据与存储

  • 所有数据库表必须以 cf_ 为前缀(如 cf_product, cf_order
  • 金额字段必须使用 decimal(10,2) 或更高精度,禁止使用 float/double
  • 物理属性单位统一:长度(cm), 重量(kg), 体积(m3)
  • cf_product 平台+productId 唯一约束;避免重复插入
  • JSON 字段images/skus/attributes入库前进行序列化出库进行解析

核心业务规则

  • 建议优先原则 (Suggestion-First/Semi-Auto):鉴于业务复杂性,后端 Agent 严禁在未经人工审核的情况下直接修改核心业务数据(如调价、退款、下单)。
  • 流程门禁:所有 Agent 决策必须遵循 SUGGESTED -> PENDING_REVIEW -> EXECUTED/REJECTED 状态机。
  • Console 决策闭环Agent 仅负责生成“决策建议包”(含因果叙述与证据链),必须由人工在 Console 端确认后方可执行。
  • 计价逻辑必须收敛于 PricingService,禁止在 Controller 或前端硬编码公式
  • B2B 利润率红线:< 15% 禁止报价
  • B2C 利润率红线:< 20% 触发风控预警
  • 所有设备必须标记Commercial Use Only, Non-Returnable
  • 严禁处理住宅地址订单轻B模式

插件消息规范

  • 所有 message.type 统一在 src/shared/types/messaging.ts 声明
  • 新增类型前必须在 background 与调用方同时适配,并补充最小冒烟测试

安全与权限规范

  • 权限模型RBAC (基于角色的访问控制) + 颗粒度权限点 (如 order:read)
  • 预设角色ADMIN (全权), MANAGER (运营主管), OPERATOR (运营专员), FINANCE (财务主管), SOURCING (采购专家), LOGISTICS (物流专家), ANALYST (数据分析师)
  • 权限校验:路由层必须通过 authorize(permission) 中间件进行拦截,禁止在 Controller 中硬编码 role === 'ADMIN'
  • 数据隔离:非 ADMIN 用户在查询列表时必须根据 parentId 进行层级过滤,仅能看到自身及下属数据

提交前校验 (V30.0 - 生产级自我审计)

  • 严禁全量构建 (No Heavy Build):为节省服务器/本机开销,日常开发流程中严禁运行 npm run build
  • 强制自我审计 (Self-Check Only)
    • 开发者AI必须在交付代码前通过 ReadGetDiagnostics 进行逻辑自查与类型校验。
    • 逻辑自查标准:代码必须细致到“部署即运行”,业务链路必须闭环(如:新增字段必须在 API 响应中体现,且在 Service 中有对应处理)。
  • 禁止跨 AI 审计:每个窗口仅负责自身代码的业务完整性,无需等待其他 AI 审计,直接交付。

安全与保密

  • 严禁提交任何密钥或私密配置;环境变量由 .env 管理并忽略提交

Todo 列表执行规范

  • 必须通过 TodoWrite 工具同步任务进度;每次对话开始时应优先规划或更新任务列表。
  • 在任务列表中所有 pendingin_progress 的任务未处理完成或未记录明确阻塞原因前,严禁主动终止对话回合或将控制权交还给用户。
  • 阻塞即自查 (Self-Diagnosis on Blockage)如果任务被阻塞BlockedAI 必须在 Todo 或看板中清晰列举出当前遇到的“自我问题”,并遵循 RCA 强制模板
    • [CATEGORY](Context Missing / Logic Conflict / API Hallucination / Env Issue)
    • [ROOT_CAUSE](具体原因,如:.env 缺少某 Key)
    • [MITIGATION](修复建议或 Fallback 路径,如:手动在 .env 补充该 Key 或使用模拟数据)
  • 必须遵循“规划 -> 执行 -> 验证 -> 归档”的完整闭环,单次执行应尽可能覆盖多个关联任务以提高效率。
  • 任务描述必须使用中文,并清晰定义“核心/架构/业务/UI”等模块属性。

架构与性能边界 (Single-Node Architecture)

  • 基础设施配置
    • 数据库:阿里云 RDS (MySQL 8.0);禁止在代码中执行 DROP/TRUNCATE;复杂查询必须通过 EXPLAIN 校验索引。
    • 缓存与队列:本地 Redis (服务器 6379 端口);所有异步任务通过 BullMQ 走本地 Redis。
  • 单机资源保护
    • 内存管理:后端 Node.js 进程限制 --max-old-space-size=4096;图片处理 (Sharp) 必须开启 sequentialRead 以降低内存峰值。
    • 并发控制API 速率限制 (Rate Limit) 必须基于本地 Redis 实现Worker 并发数 (Concurrency) 严禁超过 10防止单机 CPU 耗尽。
  • 边界隔离
    • Domain 间引用:禁止跨 Domain 直接操作数据库模型,必须通过 Service 暴露接口或 EventBus 异步通信。

1 (Brain) + 3 (Agents) 指挥与自省协议 (V30.0)

  • 角色定位:大脑 (Brain) 负责全局调度与决策Agent (AI-1, AI-2, AI-3) 负责原子任务包的闭环开发。
  • Agent 问题显性化 (Explicit Issue Disclosure)Agent 必须在对话开始、执行中、交付前三个阶段明确上报“自我问题”:
    • 认知自省:若不理解大脑下发的任务背景或逻辑,必须立即回传 [CONTEXT_BLOCKED] 并说明缺失的具体 MD 或代码上下文。
    • 逻辑自省:若发现大脑的指令与现有代码或 project_rules 存在矛盾,必须回传 [LOGIC_CONFLICT] 并指出矛盾点。
    • 环境自省:若由于本地环境(如 Redis 未启动、.env 缺失)导致代码无法验证,必须回传 [ENV_LIMITATION] 并提供模拟验证结果。
  • 深度思考与文档反哺 (Reflective Documentation)Agent 不仅仅是代码执行器,必须承担“架构思考者”的角色。在任务包闭环后,必须主动执行以下动作:
    • 逻辑升华:若在开发中发现更优的业务逻辑或架构路径,必须同步更新 docs/blueprints/ 下的相关蓝图。
    • 规格校准:若实际实现与 task-specifications.md 存在偏差,必须立即校准规格文档,确保“实现即规格”。
    • 知识沉淀:将开发过程中遇到的深坑、避坑指南记录至 docs/quality/ 或相关 MD实现 AGI 知识库的自我增量进化。
  • 看板强制反馈:所有 [ISSUE-AI-X] 标签必须包含具体的“自我认知”描述,严禁使用“任务无法完成”等模糊词汇。
  • 任务规格书驱动 (Spec-Driven):复杂任务必须先在 docs/governance/task-specifications.md 定义原子化规格。
  • 收益优先原则 (ROI-First)
    • 业务收益:优先实现提升转化率(如 AR 预览、智能预测)与降低成本的任务。
    • 开发收益:优先实现提升自动化测试与隔离环境(如 Sandbox Crawler的任务。
  • 极限增量更新原则 (Absolute Incremental Update)
    • 物理删除禁令:严禁物理删除任何已存在的文字信息。
    • 状态演进标注:失效信息使用 删除线,并标注 [AI-X @ YYYY-MM-DD]
  • 变更编年史 (Change Log) 强制同步:每次完成变更必须在看板追加记录。
  • 原子化文档同步 (Atomic Doc Sync):变更代码的同时必须追加文档记录。
  • 自适应任务领取 (Auto-Claiming)AI 需主动读取看板领取任务。

AI-First 代码库治理规范 (V31.5 - Autocomplete 友好型工程)

  • 补全优先编码 (Autocomplete-First)

    • 标准命名:禁止任何语义不明的缩写。变量名与函数名必须具备强描述性,以最大化 IDE 自动补全的预测准确度。
    • JSDoc 驱动:在实现逻辑前,必须编写详尽的 JSDoc@param, @returns, @throws)。这不仅是文档,更是为 Autocomplete 提供精准的上下文先验知识。
    • 小函数原则:单个函数逻辑控制在 30 行以内。函数越短Autocomplete 的补全信心指数越高,从而减少人工手动输入的 Dollar Usage 成本。
  • 全栈蓝图协议 (V31.3 - 全栈蓝图协议)

  • 前端方案强制性 (Frontend Blueprinting)

    • 后端 Agent 在完成任何 Service 或 API 逻辑后,必须在 docs/blueprints/frontend-integration/ 下产出对应的详细前端实现方案。
    • 详细度要求:必须包含 UI 布局草图Markdown 描述)、交互状态机(如按钮 Loading 逻辑)、核心 API 字段映射及 ROI 可视化逻辑。
    • 逻辑对齐:确保后端提供的 causalChain(因果链)能在前端 Console 端完美呈现,杜绝“后端有数据,前端没位置”的尴尬。
  • 物理 Schema 唯一源 (Single Source of Schema)

    • LegacyTableInitializer.ts 是项目中唯一的物理表初始化入口(禁止新增其它初始化文件)。
    • 任何 Agent 在新增业务实体时,必须首先在对应的 Service 中实现静态 initTable() 方法,并将其注册LegacyTableInitializer 中。
  • Schema 幂等性 (Idempotency)

    • 所有建表语句必须使用 db.schema.hasTable 进行前置校验。
    • 严禁在业务逻辑执行过程中动态创建表,必须在系统启动/初始化阶段通过上述唯一入口完成。
  • 契约驱动的数据库协作 (Contract-Driven DB)

    • 如果 AI-3 (Biz) 需要的新表尚未由 AI-1 (Kernel) 完成物理建表AI-3 必须先在 shared/contracts 定义 Zod Schema 作为“逻辑契约”。
    • AI-3 可以基于此契约编写业务逻辑,但任务在物理表未在唯一入口落地并验证前,严禁标记为 completed
  • 严禁 Mock 数据 (Zero-Mock Policy)

    • 严禁在生产级 Service 或前端 Page/Component 中使用硬编码的 return { ... }setTimeout 模拟或模拟数据。
    • 所有业务输出必须来自 cf_ 数据库表、第三方生产 API 或后端真实 Controller 响应。
  • 因果链强制性 (Causal Chain Enforcement)

    • 每一个 AGI 建议必须通过 DecisionExplainabilityEngine 记录真实的因果叙述。
    • 严禁生成无数据支撑的“空洞建议”AI-2 (Internal) 将对因果链进行逻辑真实性审计。
  • 部署即运行 (Deploy-Ready)

    • completed 的标志是:数据库表已初始化、核心逻辑已闭环、通过 GetDiagnostics 校验。
    • 严禁提交带有 // TODO: implement later 或仅有接口定义而无实现的代码。
  • 影子测试 (Shadow Auditing)

    • AI-2 (Internal) 在 AI-1/3 开发的同时,必须产出该功能的 Shadow-Test(最小冒烟测试),并在看板同步。
  • 目录职责固化:后端必须遵循 core/ domains/ workers/ api/ shared 分层,禁止跨层越权调用。

  • 契约先行跨端能力Console/Extension/NodeAgent必须先定义 contract再实现逻辑。

  • 状态机门禁:发布、审核、对账流程必须落入统一 FSM禁止散落在 Controller 中硬编码流程分支。

  • 追踪四元组必填:所有任务与日志必须携带 tenantId/shopId/taskId/traceId

  • Agent 异常自省 (Self-Problem Awareness)Agent 必须能够明确识别并记录自身的问题。在执行链路中若由于输入不规范、逻辑矛盾、API 幻觉或环境约束导致无法继续,必须遵循以下 异常处理准则

    • 级别化 (Leveling):明确标注错误级别 (FATAL 流程中断, WARN 降级运行)。
    • 归因化 (Attribution):必须定位至具体模块 (Service/Controller/Worker)。
    • 闭环化 (Closing):必须提供至少一个 降级/Fallback 路径,确保系统整体逻辑不产生静默失败。
  • 术语统一:中台前端统一称为 Console;历史术语以 ~~Dashboard~~ -> Console 标注演进。

  • AI 可读性优先:函数命名必须表达业务意图(禁止缩写语义漂移),同类逻辑必须复用统一 Service。

  • 防幻觉约束:新增能力必须能映射到看板任务 ID 与规格任务 ID未入规格的实现不得进入主干。

TOB 与套利专项约束 (V30.0)

  • 套利口径统一:禁止仅用“售价-采购价”判断套利;必须使用净利公式(含平台费/物流/税费/汇率/售后/广告摊销)。
  • 利润红线强制执行B2B <15% 禁止放行B2C <20% 必须进入风控审核。
  • 无 API 执行约束:无 API 平台必须走 No-API Bridge + PENDING_REVIEW,禁止全自动直发。
  • Win 节点隔离约束一店一执行上下文profileDir/proxy/fingerprintPolicy同店任务严格串行。
  • 企业交付底线上线前必须具备租户隔离、审计追责、配额治理、SLA 指标可观测四项能力。

文档管理规范 (V30.0 - 结构化与 AGI 友好)

  • 命名规范文件名必须使用小写短横线kebab-caseglobal-business-blueprint.md
  • 分类存放
    • docs/blueprints/:存放全局业务蓝图、架构设计与演进路线。
    • docs/benchmarks/:存放行业标杆(易仓、蝉妈妈等)的专项拆解与 AGI 规格。
    • docs/quality/:存放质量保障清单与红线规范。
    • docs/governance/:存放协同看板、任务规格与 AI 交互规范。
  • 引用闭环:文档内引用必须使用完整 Markdown 链接,并确保 README.mddoc-index.md 的导航同步更新。
  • 原子化更新:每次功能变更必须同步更新对应的标杆规格或蓝图,确保 AGI “先验知识”的实时性。

三AI同目录并行执行协议 (V30.0)

  • 一次性分发原则每轮必须一次性下发完整任务包P0/P1/P2禁止仅下发单点任务。
  • 连续执行原则:每个 AI 在其任务包内必须连续执行到“完成或明确阻塞”才允许结束回合。
  • 停机条件白名单:仅允许以下两类停机:
    1. 外部依赖阻塞(账号权限/第三方不可用);
    2. 已达到任务包验收标准并完成文档归档。
  • 文件占用锁:同目录协作时必须先声明文件归属,遵循“谁领取谁编辑”,避免并发覆盖。
  • 冲突处理:出现同文件冲突时,后写入方必须先 Read 最新内容并做增量合并,不得回滚他人变更。
  • 任务包格式固定:每个任务包必须包含 任务ID/负责人/输入文件/输出文件/验收标准/阻塞升级路径
  • 批次节奏:推荐 1 日 2 批(上午分发、下午回收),回收后立即进行下一批一次性分发。