Files
makemd/.trae/rules/project-specific-rules.md
wurenzhi 72cd7f6f45 chore: 清理归档文件和文档模板
删除不再需要的归档文件和过时的文档模板,包括多个README、安全策略、前端集成蓝图等文件,同时移除了未使用的业务文档和项目结构文件。

优化项目结构,移除冗余文件,保持代码库整洁。主要删除archive/handover目录下的多个文件及doc目录下的部分文档模板。
2026-03-18 01:21:15 +08:00

200 lines
5.5 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.
# 项目特定规则 (Project-Specific Rules)
> 本文件包含 Crawlful Hub 项目的**硬性约束和配置**,所有代码必须遵守。
>
> 📚 **详细文档请查阅**: `docs/` 目录
> - 业务蓝图: `docs/00_Business/`
> - 架构设计: `docs/01_Architecture/`
> - AI规范: `docs/05_AI/`
> - 治理规范: `docs/00_Business/Governance_Standards.md`
---
## 1. 数据与存储约束
### 1.1 表命名规范
- **表前缀**: 所有表必须以 `cf_` 开头(如 `cf_product`, `cf_order`
- **金额字段**: 必须使用 `decimal(10,2)`,禁止 float/double
- **物理属性单位**: 长度(cm), 重量(kg), 体积(m³)
### 1.2 数据完整性
- **唯一约束**: `cf_product` 表必须保证 (platform, productId) 唯一
- **JSON 处理**: images/skus/attributes 入库前序列化,出库解析
- **幂等性**: 所有建表语句必须使用 `db.schema.hasTable` 前置校验
---
## 2. 核心业务规则(硬性约束)
### 2.1 决策流程门禁
```
SUGGESTED -> PENDING_REVIEW -> EXECUTED/REJECTED
```
- **严禁**: Agent 直接修改核心业务数据(调价、退款、下单)
- **必须**: 人工在 Console 端确认后方可执行
### 2.2 计价与利润红线
- **计价收敛**: 所有价格计算必须走 `PricingService`
- **利润红线**:
- B2B 利润率 < 15% → **禁止报价**
- B2C 利润率 < 20% → **触发风控预警**
- **禁止**: Controller 或前端硬编码价格公式
### 2.3 订单限制
- **设备标记**: 所有设备必须标记 `Commercial Use Only`, `Non-Returnable`
- **地址限制**: 严禁处理住宅地址订单轻B模式
---
## 3. 插件技术规范
### 3.1 消息类型声明
- **统一入口**: `src/shared/types/messaging.ts`
- **新增流程**:
1. 在 messaging.ts 声明类型
2. background 与调用方同时适配
3. 补充最小冒烟测试
---
## 4. 安全与权限
### 4.1 RBAC 模型
- **预设角色**:
- `ADMIN` - 全权
- `MANAGER` - 运营主管
- `OPERATOR` - 运营专员
- `FINANCE` - 财务主管
- `SOURCING` - 采购专家
- `LOGISTICS` - 物流专家
- `ANALYST` - 数据分析师
### 4.2 权限校验
- **强制**: 路由层使用 `authorize(permission)` 中间件
- **禁止**: Controller 中硬编码 `role === 'ADMIN'`
- **数据隔离**: 非 ADMIN 用户查询必须根据 `parentId` 层级过滤
---
## 5. 架构与性能边界
### 5.1 基础设施
- **数据库**: 阿里云 RDS (MySQL 8.0)
- **禁止**: 代码中执行 `DROP/TRUNCATE`
- **要求**: 复杂查询必须通过 `EXPLAIN` 校验索引
- **缓存**: 本地 Redis (6379 端口)
- **队列**: 所有异步任务通过 BullMQ 走本地 Redis
### 5.2 单机资源保护
- **内存**: Node.js 进程限制 `--max-old-space-size=4096`
- **图片处理**: Sharp 必须开启 `sequentialRead`
- **并发控制**:
- API 速率限制基于本地 Redis
- Worker 并发数 ≤ 10
### 5.3 边界隔离
- **禁止**: 跨 Domain 直接操作数据库模型
- **必须**: 通过 `Service` 暴露接口或 `EventBus` 异步通信
---
## 6. TOB 与套利专项约束
### 6.1 套利计算口径
- **禁止**: 仅用 "售价 - 采购价" 判断套利
- **必须**: 使用净利公式(含平台费/物流/税费/汇率/售后/广告摊销)
### 6.2 利润红线强制执行
- B2B `<15%`**禁止放行**
- B2C `<20%`**必须进入风控审核**
### 6.3 无 API 平台约束
- **必须**: 走 `No-API Bridge` + `PENDING_REVIEW`
- **禁止**: 全自动直发
### 6.4 Win 节点隔离
- **一店一上下文**: profileDir/proxy/fingerprintPolicy
- **同店任务**: 严格串行执行
### 6.5 企业交付底线
上线前必须具备:
- ✅ 租户隔离
- ✅ 审计追责
- ✅ 配额治理
- ✅ SLA 指标可观测
---
## 7. AI 协作协议
### 7.1 角色定位
- **Brain**: 全局调度与决策
- **Agent (AI-1/2/3)**: 原子任务包闭环开发
### 7.2 自省要求
Agent 必须在以下阶段上报"自我问题"
1. 对话开始时
2. 执行过程中
3. 交付前
### 7.3 执行原则
- **一次性分发**: 每轮下发完整任务包P0/P1/P2
- **连续执行**: 任务包内连续执行到"完成或明确阻塞"
- **文件占用锁**: 同目录协作先声明归属,"谁领取谁编辑"
- **冲突处理**: 后写入方必须先 Read 最新内容,增量合并
---
## 8. 追踪与日志
### 8.1 五元组必填
所有任务与日志必须携带:
```typescript
{
tenantId: string;
shopId: string;
taskId: string;
traceId: string;
businessType: 'TOC' | 'TOB';
}
```
### 8.2 状态机门禁
- 发布、审核、对账流程必须落入统一 FSM
- **禁止**: Controller 中硬编码流程分支
---
## 9. 代码质量门禁
### 9.1 命名规范
- **服务类**: 统一使用 `Service` 后缀
- **禁止**: `Manager`/`Helper` 等后缀
### 9.2 注释规范
- **必须**: 每个服务类包含完整 JSDoc
- **必须**: 明确标识任务ID和功能描述
### 9.3 部署标准
`completed` 的标志:
1. ✅ 数据库表已初始化
2. ✅ 核心逻辑已闭环
3. ✅ 通过 `GetDiagnostics` 校验
---
## 快速参考
| 规则类别 | 关键约束 | 违反后果 |
|---------|---------|---------|
| 数据存储 | 表前缀 `cf_`, 金额 `decimal(10,2)` | 数据不一致 |
| 业务决策 | 必须 `PENDING_REVIEW` | 直接修改生产数据 |
| 利润红线 | B2B<15%禁止, B2C<20%预警 | 财务风险 |
| 安全权限 | 使用 `authorize()` 中间件 | 权限漏洞 |
| 性能边界 | Worker并发≤10, 内存≤4GB | 系统崩溃 |
| 追踪日志 | 五元组必填 | 无法追溯 |
---
*本文件仅包含硬性约束,详细规范请查阅 `docs/` 目录。*