# User Story Map - AI 协作开发者

> Date: 2026/03/08
> User Type: AI 协作开发者 · 小明

---

> **说明**：描述该用户从发现产品到需求被满足的完整旅程。
> 每个节点记录：用户在此步骤做了什么、可能有的疑问、产品如何回应。

---

## Step 1：发现与了解产品

- **用户在做什么**：在搜索引擎、GitHub 或技术社区看到 Horn 工具的介绍，了解到它可以在 agent 完成任务时播报语音通知
- **用户的疑问**：这个工具怎么安装？我的电脑支持吗？需要复杂配置吗？
- **产品的回应**：README 明确说明支持 Windows、安装只需一条 pip 命令、配置只需复制一段 Cursor Rules 代码

## Step 2：安装 Horn

- **用户在做什么**：在终端执行 `pip install horn` 完成安装
- **用户的疑问**：安装成功了吗？我怎么验证它能用？
- **产品的回应**：安装完成后，用户可执行 `horn` 命令，听到一段中文语音播报（如"Horn 已就绪，等待任务通知"），确认安装成功

## Step 3：配置 Cursor Rules

- **用户在做什么**：按照文档说明，将 Horn 的调用规则复制到 Cursor 的 `.cursor/rules/` 目录中（或全局 Rules 配置中）
- **用户的疑问**：这段 Rules 什么意思？我需要修改它吗？放在哪里？
- **产品的回应**：文档提供完整的 Rules 内容和放置路径说明，用户直接复制粘贴即可，无需理解规则细节

## Step 4：首次验证触发

- **用户在做什么**：给 Cursor 下达一个简单任务（如"帮我写一个 hello world"），观察任务完成后是否有语音播报
- **用户的疑问**：为什么没有声音？是配置有问题还是音量问题？
- **产品的回应**：Rules 中包含清晰的触发条件说明；若触发失败，文档提供排查步骤（检查音量、检查 SAPI 是否启用等）

## Step 5：日常使用 - 交付任务后离开

- **用户在做什么**：给 Cursor agent 下达一个较大的任务（如"重构整个登录模块"），然后起身去做其他事情
- **用户的疑问**：agent 开始了吗？它会在哪些节点播报？
- **产品的回应**：agent 接收任务后立即调用 Horn，播报「老板，我开始执行任务了」，用户可放心离开

### 5.1 正常通知触发流程

| 触发节点 | Horn 播报内容 |
|----------|--------------|
| agent 开始执行任务 | 「老板，我开始执行任务了」 |
| agent 完成全部任务 | 「老板，任务已完成」 |
| agent 执行中途需要用户决策 | 「老板，有事情需要你确认」 |

### 5.2 异常情况 - 不触发通知的场景

> 以下场景属于 Horn 职责范围之外，不做处理，产品不负责感知和通知：

| 异常类型 | 原因说明 | 归属 |
|----------|----------|------|
| LLM 未收到触发指令 / 未按 Rules 规范调用 horn | Horn 无法被动感知 LLM 的行为 | Cursor Rules 配置问题 |
| Horn 安装不正确或未被 Cursor 扫描到 | horn 命令不可执行，无法被调用 | 安装/配置问题，由文档引导用户排查解决 |
| agent 客户端与 LLM 通信中断后重连 | 重连过程由 agent 客户端自行处理，Horn 不介入 | agent 客户端职责 |
| agent 客户端通信断开且未恢复 | Horn 依赖 agent 客户端调用，无法自行触发 | agent 客户端职责 |

## Step 6：收到语音通知

- **用户在做什么**：在其他地方听到电脑播报语音，根据内容判断当前状态
- **用户的疑问**：是开始了、完成了，还是需要我去确认什么？
- **产品的回应**：语音播报内容本身已明确区分三种状态（开始 / 完成 / 需确认），用户无歧义

## Step 7：需求被满足

- **用户在做什么**：返回电脑查看 agent 输出，做出确认或继续指示
- **用户的疑问**：无
- **产品的回应**：任务形成完整闭环，用户无需在等待期间频繁查看屏幕
