# Analyze Showroom Sales Recording

> 分析家具展厅的销售录音、逐字稿或飞书妙记，生成包含客户需求、销售表现和建议话术的独立五环节复盘；同时提炼客户事实，查重后更新或新建客户资料。用户要求分析客户接待、销售表现、建议话术或把录音信息写入客户表时使用。

- Skill: `leevi2010-cursor/analyze-showroom-sales-recording` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add leevi2010-cursor/analyze-showroom-sales-recording`
- Raw SKILL.md: https://api.skillmd.com/api/skills/leevi2010-cursor/analyze-showroom-sales-recording/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: leevi2010-cursor (https://skillmd.com/u/leevi2010-cursor)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/leevi2010-cursor/analyze-showroom-sales-recording

---


# 私享国际销售录音分析

把一份销售录音处理成两个相互分开的结果：

1. **独立销售复盘**：完整呈现客户需求、销售表现、证据、改进建议和可直接使用的建议话术。
2. **客户资料写入**：只提炼客户事实，按目标表已有字段查重后更新或新建客户记录。

录音、逐字稿、飞书妙记和飞书自动摘要都是只读来源。不得把复盘正文追加到来源文档，也不得把销售评价、建议话术或整篇复盘写进客户资料表。

## 运行配置

通过环境变量提供业务入口，不把客户目录、租户标识或本机绝对路径写进公开 Skill：

- `SHOWROOM_PROJECT_ROOT`：项目根目录。
- `SHOWROOM_AUDIENCE_DIMENSIONS`：客群维度文件；可选。
- `SHOWROOM_SALES_REVIEW_ISSUE`：销售复盘事项文件；可选。
- `SHOWROOM_LARK_PARENT_TOKEN`：报告归档的飞书知识库父节点 token。
- `SHOWROOM_LARK_PROFILE`：经过授权的 `lark-cli` profile。
- `SHOWROOM_LARK_ACTOR`：项目规则允许的飞书身份，只能是 `user` 或 `bot`。
- `SHOWROOM_LARK_BASE_URL`：飞书租户基础地址，例如 `https://example.feishu.cn`。
- `SHOWROOM_CUSTOMER_BASE_URL`：现有客户资料表的完整飞书 Base 或 Wiki 链接。
- `SHOWROOM_CUSTOMER_TABLE`：客户资料表的真实表 ID 或准确表名。
- `SHOWROOM_PRIVATE_EVIDENCE_ROOT`：原录音和逐字稿的私密工作目录。

执行前检查必需变量，并读取项目根目录最近的 `AGENTS.md`。需要飞书归档或更新客户资料时，`SHOWROOM_LARK_PROFILE`、`SHOWROOM_LARK_ACTOR` 和 `SHOWROOM_LARK_BASE_URL` 缺一不可；归档还需要 `SHOWROOM_LARK_PARENT_TOKEN`，更新客户资料还需要 `SHOWROOM_CUSTOMER_BASE_URL` 和 `SHOWROOM_CUSTOMER_TABLE`。缺失时停止相应的外部写入并告诉用户要补什么。飞书身份必须符合项目 `AGENTS.md`，不能在失败后自行切换。项目规则禁止修改的方法目录继续只读。

生成复盘时读取 [报告格式](references/report-format.md)。更新客户资料时还要读取 `lark-base` Skill 和 [客户资料更新规则](references/customer-base-update.md)。

## 输入路由

先判断输入属于哪一种，再读取 [输入处理](references/input-routing.md)：

1. **录音逐字稿**：直接使用原文。保留说话人、时间点和来源。
2. **本地录音源文件**：在本机转写，不把原音频上传到第三方。先运行 `scripts/ensure_local_transcription.sh`；再用 `ffmpeg` 检查音频，用 `mlx_whisper` 生成带时间点的 JSON 和文字稿。
3. **飞书妙记链接**：先用 `lark-minutes +detail --transcript` 下载逐字稿，再用 `lark-minutes +download` 下载原录音。分析基于逐字稿，原录音只用于抽查听不清、数字、产品名和关键承诺。

如果输入不是家具展厅销售或客户接待录音，说明判断依据并停止，不套用本 Skill。

## 身份门槛

正式报告前必须确认：

1. 客户姓名或双方约定的称呼。
2. 接待销售姓名。
3. 录音日期和场景。
4. 每位说话人分别是客户、家属、销售还是其他人员。

优先从用户说明、妙记说话人、文档标题和逐字稿自我介绍中识别。不得只凭声音、性别、口音或姓名猜身份。

接待销售不得使用项目默认值，也不得根据历史记录、常见接待人员、声音、说话方式或在场人员自行推定。销售姓名必须由用户明确指定，或由妙记说话人姓名、自我介绍、排班记录、客户记录等可靠来源直接确认，并在报告中写明确认依据。

如果只能判断某位说话人是销售，但不能确认其姓名，必须先询问用户。用户明确给出姓名后才能继续正式分析。销售姓名未确认时，不得生成销售评价、评分、个人建议、建议话术或正式飞书报告。

任一身份仍不清楚时，先向用户列出缺失项并停止。不得生成销售评价、评分、个人建议或建议话术。

## 分析规则

读取 [报告格式](references/report-format.md)，然后：

1. 使用客群维度表中的编号、名称、选项和未确认状态。主要维度逐项检查，但不为了填满表格而追问无关信息。
2. 分开写客户原话、已确认事实、员工判断、AI 判断和未确认信息。
3. 按五个环节分析：建立信任、了解需求、制定方案、解除疑虑、锁单成交。
4. 每个环节写证据时间点、完成情况、建议、建议话术和下一步。
5. “下一步”不是第六个环节。每个环节都要说明谁、何时、做什么、怎样确认完成。
6. 客户可能返回前一个环节。记录返回原因，不强行写成直线流程。
7. 没有进入的环节写“本次未进入”。证据不足写“待确认”，不得补猜。
8. 建议话术使用高中毕业生能听懂的短句，不使用职场黑话，不用话术施压客户。
9. 第一版不做情绪识别和自动绩效评分。评分规则未经业务确认时不得给数字分。
10. 分析完成后分别形成“复盘报告内容”和“客户字段写入清单”。两者不能互相替代，也不能混写。

## 独立复盘报告

用户提交输入并要求分析，即授权把完成后的正式报告作为独立文档写入已配置的父目录。写入前仍需验证 profile、身份、父节点标题和 space_id；不符合时停止，不能切换租户或身份。

标题格式固定为：

`【销售复盘】YYYYMMDD｜客户称呼｜销售姓名｜场景`

规则：

- 一份录音对应一份独立的正式复盘文档。
- 来源文档只读。不得向妙记、逐字稿、飞书自动摘要或其他来源文档追加、替换、重命名或删除内容，即使其标题中含有“销售复盘”。
- 同一录音以妙记 token；或文件 SHA-256；或“日期 + 时长 + 客户 + 销售”作为稳定标识。
- 正式复盘正文必须写明 `报告生成标识：analyze-showroom-sales-recording` 和来源稳定标识。
- 创建前列出父节点子文档。只有同时包含相同来源稳定标识和上述报告生成标识的文档，才算已有正式复盘；标题相似、客户相同或包含同一来源链接都不够。
- 已有正式复盘时更新该独立文档，不在末尾重复追加一份报告；没有时创建新的子文档。
- 使用 `docs +create --parent-token "$SHOWROOM_LARK_PARENT_TOKEN"` 创建子文档，正文默认使用 XML。
- 正文只放报告、来源链接或来源标识。客户联系方式、完整逐字稿和本地路径不放入正文。
- 创建或更新后必须 `docs +fetch` 读回，检查标题、客户需求、销售总体表现、五个销售环节、建议话术、报告生成标识和来源稳定标识。
- 成功后返回飞书链接；读回失败不能报告完成。

所有飞书命令显式使用：

```bash
env -u HERMES_HOME lark-cli <service> <command> \
  --profile "$SHOWROOM_LARK_PROFILE" --as "$SHOWROOM_LARK_ACTOR"
```

飞书具体参数以执行时读取的 `lark-minutes`、`lark-doc`、`lark-wiki` Skill 和命令帮助为准，不凭记忆拼参数。

## 更新客户资料

用户要求使用本 Skill 分析录音时，同时授权把录音中已经确认的客户事实写入已配置的客户资料表。授权包括更新唯一匹配的现有记录，以及在完整查重后确认没有对应记录时自动新建一条客户记录；不包括增加或删除表格与字段、删除记录、修改权限，也不包括覆盖有冲突的旧值。

客户资料写入和复盘文档写入是两个独立结果。一个结果失败时，只报告该结果失败，不得因此跳过另一个仍有权限完成的结果。按照 [客户资料更新规则](references/customer-base-update.md) 执行：

1. 先从逐字稿和可靠业务记录提炼客户事实，并映射到目标表已有字段。销售表现、改进建议和建议话术不得进入写入清单。
2. 从 `SHOWROOM_CUSTOMER_BASE_URL` 取得真实 `base_token`，再读取 `SHOWROOM_CUSTOMER_TABLE` 和字段；不能把 Wiki token 当成 `base_token`。
3. 先查找对应客户。只有姓名相同不能证明是同一个客户；创建前必须再用最强的已确认信息复查一次。
4. 唯一匹配时，读取当前记录并逐个比较新旧值，只补充录音直接证明、且字段允许写入的客户事实。
5. 查重结果为 0 条且身份资料达到规则中的最低要求时，使用不带 `--record-id` 的 `base +record-upsert` 新建一条记录，只填写已确认字段。
6. 唯一匹配时，使用带 `--record-id` 的 `base +record-upsert` 更新；找到多条候选时不得自行选择，也不得新建。
7. 写入后用返回的 `record_id` 执行 `base +record-get`，检查记录 ID 和实际写入值。没有读回成功，不能报告客户资料已写入。

身份资料不足、找到多条候选、旧值冲突、字段不存在、字段选项不兼容或权限不足时，保留分析报告并停止客户表写入。告诉用户缺什么，不猜客户，也不改用另一身份或租户。

## 失败处理

- 音质差、多人重叠、转写失败：指出具体区段和原因，不生成看似完整的报告。
- 妙记无权限：报告权限问题；未经用户明确要求，不自动申请权限。
- 依赖安装失败：保留原文件，报告缺少的工具和最小补救动作，不改系统配置。
- 飞书写入失败：保留本地私密报告，不改投其他租户，也不把本地文件假装成飞书交付。
- 找到多条相似客户记录：列出不含联系方式的候选摘要，请用户指定原记录；不得自行挑选或另外新建。
- 没有匹配记录但客户身份资料不足：列出缺少的识别信息，资料补齐前不得新建。
- 客户资料已有不同值：保留旧值，不覆盖；列出字段名、两边来源和需要谁确认。
- 飞书返回 `91403` 或明确的无权限错误：停止重试，报告当前身份需要获得目标表编辑权限。

## 完成标准

- 身份已经确认。
- 主要客户维度已逐项检查。
- 五个销售环节都有证据状态。
- 所有建议能回到逐字稿时间点。
- 每个实际下一步都有负责人、时间和完成标准。
- 来源录音、妙记、逐字稿和自动摘要文档没有被修改。
- 独立复盘文档已经写入并读回，且包含客户需求、销售表现和建议话术；或者明确报告了无法归档的原因。
- 唯一客户记录已经更新并读回，或零匹配时新客户记录已经创建并读回；或者明确报告了无法写入的具体原因和最小补齐动作。
- 客户资料表只写客户事实，没有写入整篇复盘、销售评价或建议话术；没有重复客户记录，也没有删除表、字段或记录。
- 原录音、完整逐字稿和客户联系方式没有进入普通 Git 仓库。

