Files
membank/.trae/skills/sku-cost-profit-auditor/SKILL.md

161 lines
6.8 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.
---
name: "sku-cost-profit-auditor"
description: "Audits and corrects cost and profit data for SKUs in the membank product catalog. Invoke when user asks to check, reconcile, verify, or fix SKU cost/profit figures, or when cost errors (e.g., total cost mismatches) are suspected."
---
# SKU Cost Profit Auditor
基于每日订单截图与配件采购单,动态维护 SKU 的成本与利润。通过 OCR 识别订单售价、采购单配件价,自动新增缺失 SKU、纠正成本与利润实现 SKU 主数据的动态闭环维护。
## 触发场景
- 用户把当日订单截图放入 `产品\<产品线>\订单\` 后要求处理
- 用户把最新配件采购单放入 `产品\<产品线>\采购单\` 后要求更新成本
- 用户要求核对/纠正某个 SKU 的成本或利润
- 怀疑 SKU 总成本、利润计算有误(如配件涨价后未同步)
## 工作目录约定
针对某条产品线(如 `飞牛 NAS`),工作区结构如下。若 `订单\` `skus\` `采购单\` 不存在,执行前自动创建:
```
产品\<产品线>\
├── 订单\ # 输入:当日订单截图(处理后清空)
├── 采购单\ # 输入:最新配件采购单截图(处理后清空)
├── skus\ # 主数据:当前生效的 SKU md 文件 + 价格表.md
└── 归档\ # 参考:历史/全部产品线 SKU新增 SKU 时参考其格式与配置
├── <子产品线>\
│ ├── sku\<型号>.md
│ └── 价格表.md
└── ...
```
> 默认产品线为 `飞牛 NAS`。若用户未指定,默认操作该产品线。
## SKU 文件格式(必须遵守)
每个 SKU 是一个 md 文件,文件名即型号(如 `3.5金大-双-1037U-4G-128G.md`),内容为配件价格表:
```markdown
# 产品信息
| 字段 | 配件名称 | 价格 |
|------|---------|------|
| **产品编号** | - | - |
| **产品名称** | 飞牛NAS 3.5金属大 双盘位 1037U | - |
| **产品型号** | 3.5金大-双-1037U-4G-128G | - |
| **用途分类** | NAS | - |
| **CPU** | 1037U | ¥50 |
| **内存** | D3-4G | ¥18 |
| **系统盘** | mSATA-128G | ¥68 |
| **机箱** | 金属机箱3.5寸大 | ¥68 |
| **电源** | 电源-96W | ¥18.5 |
| **硬盘线** | 硬盘线-双 | ¥5 |
| **电池** | 电池 | ¥1 |
| **网线** | 网线 | ¥1 |
| **运费** | 运费 | ¥10 |
| **包装费** | 包装费 | ¥5 |
| **装机费** | 装机费 | ¥10 |
| **总成本** | - | ¥254.5 |
| **建议零售价** | - | ¥285 |
| **备注** | 3.5金属大双盘位双SATA口 | - |
```
`价格表.md` 汇总当前 `skus\` 下所有 SKU表头`序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | 备注`,顶部注明定价策略。
## 命名规则
SKU 型号格式:`{机箱}-{盘位}-{CPU}-{内存}-{系统盘}`
- 例:`3.5金大-双-1037U-4G-128G``亚克力-单-i5-3代-8G-128G`
新增 SKU 时严格沿用同子产品线归档中的命名风格。
## 工作流
### 阶段 1订单 OCR 识别
1. 扫描 `产品\<产品线>\订单\` 下所有图片(若为空,跳至阶段 5
2. 对每张图片调用 `ocr-extract` 技能识别文字
3. 从识别结果提取:**SKU 型号** 与 **售价**(注意区分型号变体,如内存/系统盘差异)
4. 按型号聚合订单(记录销量与最新售价)
5. 若识别结果模糊或有歧义,**暂停并向用户确认**,不得自行猜测
### 阶段 2SKU 存在性检查
对每个识别出的型号:
1.`产品\<产品线>\skus\` 中查找 `<型号>.md`
2. 已存在 → 进入阶段 4
3. 不存在 → 进入阶段 3
### 阶段 3新增 SKU
1.`产品\<产品线>\归档\` 下递归查找同名 `<型号>.md`
2. **若归档有**:复制该文件到 `skus\`,作为初始版本
3. **若归档没有**:调用 `sku-designer` 技能,参考归档中同子产品线相似配置生成新 SKU md 文件,写入 `skus\`
4. 新增的 SKU 暂用订单售价作为建议零售价,成本先按归档/相似配置估算,待阶段 5 采购单修正
### 阶段 4核对配件与成本
1. 调用 `sku-designer` 技能核对 `skus\<型号>.md` 的配件清单是否完整、规格是否匹配
2. 总成本 = 各配件价格之和(含运费/包装费/装机费等固定项)
3. 校验文件中 `总成本` 字段与各配件之和是否一致,不一致则纠正
### 阶段 5采购单处理若 `采购单\` 非空)
1. 扫描 `产品\<产品线>\采购单\` 下所有图片/文件
2. 调用 `ocr-extract` 识别采购单内容
3. 提取:**配件名称**、**规格**、**单价**、(数量)
4. 建立「配件规格 → 最新单价」映射
5. 遍历 `skus\` 下所有 SKU md对涉及涨/降价的配件更新单价
6. 重新计算每个受影响 SKU 的 `总成本`
7. 识别模糊时同样暂停向用户确认
### 阶段 6利润纠正与销量累计
`skus\` 下每个 SKU
- **利润 = 售价 总成本**
- 售价取值优先级:① 本次订单识别的售价 ② 原文件 `建议零售价`
- 若订单中出现了新售价(调价),用新售价覆盖 `建议零售价`,并同步重算利润
**累计销量维护规则:**
- 对本次订单识别到的每个 SKU销量 += 本次订单中该 SKU 的成交数量(一般 1
- 未在本次订单中出现的 SKU销量保持不变
- 新增 SKU销量初始化为本次订单数量
- 销量是累计值,跨批次永久保留,不清零
**`价格表.md` 表头(聚焦价格 + 销量):**
```
| 序号 | 产品型号 | 成本 | 售价 | 利润 | 销量 |
```
- 同步更新对应行(成本、售价、利润、销量)
- 合计行注明累计销量总和
### 阶段 7清理已处理输入
1. 全部 SKU 更新并经用户确认后,**清空** `订单\` 目录中的图片
2. **清空** `采购单\` 目录中的图片
3. 防止下次重复处理(用户后续放入新数据即触发新一轮)
## 利润计算公式
```
总成本 = Σ(配件单价) + 运费 + 包装费 + 装机费 + 其他固定项
利润 = 售价 总成本
累计销量 = 历史销量 + 本次订单数量
```
## 定价策略(参考)
各产品线 `价格表.md` 顶部会注明定价策略如「1037U成本+30元J1900成本+50元」。纠正售价时优先遵循该策略若订单实际售价偏离策略价以**订单实际售价**为准并提示用户复核策略。
## 注意事项
- **只处理非空输入目录**`订单\``采购单\` 任一为空则对应阶段跳过
- **新增 SKU 必须参考归档**:保持命名、配件项、表格风格一致
- **配件价以最新采购单为准**:旧价覆盖、不累加
- **OCR 不确定时必须确认**:不得凭猜测写入 SKU 或价格
- **清理前需用户确认**:阶段 7 清空目录前,输出本次变更摘要让用户确认
- **每次处理输出变更摘要**:新增了哪些 SKU、更新了哪些配件价、纠正了哪些利润