# Doubao Ultimate Guide

> 统一攻略创作总控 Skill：根据用户需求路由到旅游攻略、健身攻略、美食烹饪教程、游戏攻略四个分支，默认先创建飞书/Lark 文档容器，再读取对应分支 Skill 生成内容并写入同一个文档。适用于旅行行程、训练健身、菜谱烹饪、游戏实战攻略等中文攻略类创作；不适用于泛资讯、商业分析、医疗诊断、金融投资、法律意见、纯文案包装、无明确攻略目标或不安全/违规请求。

- Skill: `ahang1598/doubao-ultimate-guide` (Agent Skill)
- Install (CLI): `npx skillmds add ahang1598/doubao-ultimate-guide`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ahang1598/doubao-ultimate-guide/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ahang1598 (https://skillmd.com/u/ahang1598)
- Updated: 2026-08-19
- Page: https://skillmd.com/skills/ahang1598/doubao-ultimate-guide

---


# Four-in-One Guide

## 目标

这是四合一攻略总控 Skill。它只负责：

1. 判断用户是否真的需要攻略类产物；
2. 在旅游、健身、美食、游戏四个分支中选择正确主干；
3. 先创建一个飞书/Lark 文档容器；
4. 再读取对应分支的 `SKILL.md` 和必要 reference，用“内容写入模式”生成攻略正文；
5. 把内容、链接、检查清单等写入已创建的同一个文档；旅游分支不做搜图、生图或插图；健身分支按自身规则只搜真实可靠图，搜不到就不插图，严禁生图；
6. 最终只交付文档标题、URL 和少量复查/亮点信息。

四个分支目录是能力来源，不在总控层重写其专业规则：

```text
branches/
├── travel-planner-pro/
├── fitness-planner-pro/
├── cooking-tutorial/
└── game-guide/
```

## 最高优先级规则

### 1. 总控先创建文档，分支只写内容

在本四合一 Skill 中，文档创建权只属于总控。

正确顺序：

1. 先用本文件完成轻量路由，判断主分支；
2. 提取标题所需的最小信息；
3. 创建一个飞书/Lark 文档容器；
4. 读取被选中的分支 `SKILL.md` 和必要 reference；
5. 按分支规则生成正文 XML / HTML 片段和质量检查；旅游不生成媒体计划，健身可按分支规则生成旁路 `image-plan.tsv`；
6. 用 `docs +update` 把正文写入已创建文档；
7. 仅在被选分支要求媒体时插入图片/媒体；
8. 回读校验并交付。

禁止顺序：

- 禁止先完整读取某个分支，然后被分支带着直接 `docs +create`。
- 禁止分支创建一个文档后，总控自检时又读取 lark-doc 规则再创建第二个文档。
- 禁止旅游/健身/游戏/美食分支各自创建独立文档。
- 禁止把分支内部的工具状态、认证状态、`image-plan.tsv`、CLI 命令、失败过程写进正文。

### 2. 分支交付规则在本 Skill 中降级为“内容写入规则”

四个分支原文里凡是写到“默认创建飞书文档 / 输出 HTML / 最终交付文档”的部分，在本四合一模式下都解释为：

- 分支负责生成对应类型的正文内容、结构计划、质量校验和最终写入片段；
- 分支不得再次执行 `docs +create`；
- 若分支需要 HTML，除非用户明确指定 HTML，否则优先转成可写入飞书文档的结构化 XML 内容；
- 若飞书工具不可用，才按总控失败策略降级，不由分支各自降级。

### 3. 不把内部路由和执行过程写进用户文档

正文只写用户要看的攻略内容。不要写：

- “已路由到旅游/健身/美食/游戏分支”；
- “根据 skill 规则”；
- “正在读取某某文件”；
- “因为找不到图片所以……”；
- “lark-cli / auth / token / scope / image-plan.tsv / no_reliable_image”；
- “这是四合一 Skill 生成的内容”。

### 4. 四个分支不互相污染

每次只能有 1 个主分支。多意图时可以有辅助分支，但必须分区写入，不得混成一个四不像攻略。

例如：

- “成都 3 天游 + 请假邮件”：主分支是旅游；请假邮件是附录，不读取健身/美食/游戏。
- “练马甲线 + 国庆云南怎么玩”：两个独立攻略意图，应拆成“健身攻略”和“旅游攻略”两个章节，或询问用户是否需要生成两份文档；不要写成旅行健身混合攻略。
- “原神角色培养 + 每天健身计划”：游戏和健身是两个独立主任务，默认拆分；若用户只要一个文档，文档内分成两个完整章节。

## 路由总览

### 旅游攻略分支

使用 `branches/travel-planner-pro/`。

触发信号：

- 旅行、旅游、自由行、行程、路书、周末游、城市怎么玩、去哪玩；
- 景点、美食、住宿、交通、预算、天气、门票、预约、签证、亲子/老人/情侣/独旅/自驾/穷游/轻奢；
- 目的地对比、路线优化、旅行飞书文档。

不触发：

- 差旅报销、请假邮件、旅行行业分析、护照丢失应急、航班赔付争议、纯酒店投诉。

分支入口：

- `branches/travel-planner-pro/SKILL.md`

读取策略：

- 先读该分支 `SKILL.md`；
- 再按其场景路由最多读取必要 reference；
- 其中“创建飞书文档”步骤改为“生成 XML 片段并写入总控已创建文档”。
- 本四合一版本中旅游分支不搜图、不生图、不插图，靠路线、天气、交通、预算、预约、备选方案、表格、callout、grid、bookmark 和清单提升内容深度。

### 健身攻略分支

使用 `branches/fitness-planner-pro/`。

触发信号：

- 健身计划、训练安排、减脂、增肌、塑形、力量、跑步、游泳、居家训练、健身房新手；
- 动作教学、组数次数、饮食恢复、食堂外卖、体态改善、打卡复盘、坚持困难；
- 训练日志、动作替代、安全边界。

不触发：

- 胸痛/晕厥等医疗诊断、急性伤病用药、健身行业市场分析、纯产品选购、医疗康复处方。

分支入口：

- `branches/fitness-planner-pro/SKILL.md`

读取策略：

- 先读该分支 `SKILL.md`；
- 再按其场景路由读取必要 reference；
- 分支内“创建飞书文档”步骤改为“生成 XML 片段并写入总控已创建文档”；
- 本四合一版本中健身分支沿用自身图片规则：核心动作、错误对照、餐盘等只有在搜到真实可靠图片时才插图；搜不到就不插图，用真实视频/图解 bookmark + 动作卡补足；严禁生图。

### 美食烹饪分支

使用 `branches/cooking-tutorial/`。

触发信号：

- 做菜、菜谱、甜品、烘焙、饮品、菜单、一桌菜、一周餐；
- 食材利用、失败补救、配方替代、备菜保存、火候技巧、厨房操作；
- 图文烹饪教程、食材清单、步骤状态判断。

不触发：

- 餐厅探店攻略、外卖推荐、餐饮行业分析、短视频脚本、小红书文案、直播稿，除非用户明确要求烹饪教程外的包装内容。

分支入口：

- `branches/cooking-tutorial/SKILL.md`

读取策略：

- 先读该分支 `SKILL.md`；
- 默认读图片与安全相关规则；
- “文档/HTML 二选一”在本四合一模式下优先落到已创建的飞书文档；用户明确要 HTML 时，作为文档附件/附录或降级产物处理。

### 游戏攻略分支

使用 `branches/game-guide/`。

触发信号：

- 具体游戏的实际游玩目标：怎么过、怎么打、怎么走、任务怎么做、地点/道具在哪、Boss 打不过；
- Build、配装、角色培养、配队、解谜、收集、成就、新手、资源效率、活动机制；
- 上传游戏截图询问当前位置、下一步或解决方法。

不触发：

- 游戏新闻、发售时间、价格、配置、纯推荐测评、行业分析、剧情赏析、电竞预测、同人创作、游戏开发设计；
- 外挂、破解、代练、账号交易、绕过反作弊等违规请求。

分支入口：

- `branches/game-guide/SKILL.md`

读取策略：

- 先读该分支 `SKILL.md`；
- 游戏攻略必须检索核验当前版本和多来源玩家反馈；
- 分支内“必须生成飞书文档或 HTML”的交付要求改为“必须写入总控已创建的飞书文档；飞书失败时才由总控降级”。

## 边界路由

### A. 需求不明 / 指代不清

用户话没有说完整、没有可识别对象、指代“那个/之前那个/帮我弄一下”但当前上下文不足时，不进入任何分支，不创建文档。

示例：

- “欸，那个啥来着，帮我搞一下。”
- “就按之前那个来一版。”
- “帮我安排一下，快点。”

处理：

1. 用 1–3 个问题澄清用户想做什么；
2. 不要猜成旅游/健身/美食/游戏；
3. 不创建飞书文档；
4. 用户补充后再走路由。

### B. 信息缺失但方向明确

用户已经明确是旅游/健身/美食/游戏，但缺少细节时，可以进入对应分支并创建文档，但正文要写适用边界和调整开关，不能在开头堆“默认假设”。

示例：

- “我想去日本玩，帮我安排。”
- “我想健身，给我个计划。”
- “我想做个蛋糕。”
- “这个 Boss 打不过，怎么打？”

处理：

1. 如果缺失信息不会导致明显错误，先生成保守可用版；
2. 若缺失信息会导致严重错误或安全风险，先问最少必要问题；
3. 不要脑补关键事实，如出发地、伤病、游戏版本、设备、食材。

### C. 技能不适用

用户请求不属于四类攻略，或属于高风险领域且不能安全生成攻略时，不进入分支，不创建文档。

示例：

- “帮我写差旅报销说明。”
- “帮我判断胸口疼是不是心脏问题。”
- “分析一下这只股票能不能买。”
- “写一篇游戏行业商业分析。”
- “我护照丢了现在人在国外怎么办？”

处理：

1. 简短说明当前不是攻略创作任务；
2. 给合适的安全方向或普通回答；
3. 不使用四个分支的攻略格式；
4. 不创建攻略文档。

### D. 多意图

用户同时提出多个不同类型意图时，先拆分，再判断是否同文档处理。

规则：

- 若多个意图都属于同一分支，可在同一分支内多模块处理。
  - 例：“云南攻略 + 拍照穿搭 + 预算”仍是旅游。
  - 例：“减脂 + 食堂外卖 + 体态改善”仍是健身。
- 若存在跨分支意图，默认按主任务优先，辅助任务放附录；若两个任务都很重，应建议拆成两份文档或在同一文档内明确分成两个完整章节。
  - 例：“成都 3 天游 + 请假邮件”：旅游为主，邮件附录。
  - 例：“练马甲线 + 云南旅行”：健身和旅游并列，建议两份或双章节。
- 若混入高风险非攻略任务，必须分离并谨慎处理。
  - 例：“游泳减肥 + 股票能不能买”：健身可做，股票不纳入攻略。

### E. 条件冲突 / 不现实约束

发现用户目标明显不可行时，不硬编完美攻略。

示例：

- “周末两天从北京自驾去新疆，轻松一点。”
- “7 天瘦 15 斤，还不想少吃也不想运动。”
- “500 元两个人国庆三亚 5 天住海景酒店。”
- “游戏新号一天拿全毕业装备。”

处理：

1. 明确指出不可行点；
2. 给降级方案或替代路线；
3. 文档标题和正文都要反映真实可行版本；
4. 不迎合不安全或虚假的目标。

### F. 强时效 / 资源准确性

旅游、游戏、部分美食/健身资源涉及时效或外部材料时，必须核验当前信息。

- 旅游：天气、交通、门票、开放时间、签证、汇率、近期活动；
- 健身：训练逻辑、权威健康安全边界、动作教学链接；
- 美食：食品安全、保存复热、真实状态图；
- 游戏：版本、赛季、活动、卡池、机制、社区反馈。

不能编链接、编图片、编视频、编当前版本。

## 总工作流

### 0. 快速路由，不读取分支全文

先只用本文件判断：

- 是否属于四合一攻略；
- 是否需求不明；
- 是否技能不适用；
- 是否多意图；
- 主分支是哪一个。

只有确定主分支后，才读取该分支 `SKILL.md`。

### 1. 创建飞书文档容器

在读取分支正文规则前，先创建最小文档容器。

文档初始内容只包含：

- `<title>`：根据用户核心需求生成的标题；
- 一个简短 `<callout>`：说明文档正在生成或写入攻略主体；
- 可选空的一级章节占位。

要求：

- 文档标题必须面向用户需求，不要叫“四合一攻略”；
- 不要把路由、skill 名、内部执行状态写进文档；
- 创建失败时，停止进入分支写作，按总控失败策略处理。

### 2. 读取主分支

创建成功后，读取主分支：

```text
branches/{selected-branch}/SKILL.md
```

并按分支说明读取必要 reference。读取分支时始终附加本模式：

```text
当前处于 four-in-one-guide 总控模式：
已存在飞书文档容器。你只负责生成内容片段、媒体计划和质量检查。
不要执行 docs +create，不要创建新的飞书文档，不要输出独立最终交付。
所有正文写入已创建文档。
```

### 3. 生成内容片段

分支应产出：

- `content.xml` 或可转换为飞书 XML 的正文片段；
- 图片/媒体计划（旅游不生成；健身、美食、游戏按各自分支规则决定是否生成）；
- 质量检查结果；
- 需要插入的 bookmark、checkbox、table、grid、callout 等结构。

正文片段必须能独立写入已创建文档，不包含 `<title>` 重复标题，不包含内部注释，不包含工具字段。

### 4. 写入已创建文档

使用 `docs +update` 写入正文。

建议策略：

- 初始容器只有占位内容时，可以用 `overwrite` 写入完整正文，但只对刚创建的空文档使用；
- 若文档已含用户内容或多分支章节，必须使用局部 `block_insert_after` / `block_replace`；
- 严禁覆盖用户已有文档的无关部分。

### 5. 插入图片/媒体

旅游分支跳过本步骤，不搜图、不生图、不插图。

健身分支只在分支 `image-plan.tsv` 中存在 `status=ready` 的真实可靠本地图片时插图；如果没有可靠图片，直接跳过插图，不解释缺图原因，不把检索过程写入正文，严禁生图。

对仍需要媒体的美食或游戏分支，图片必须服务攻略执行，不随机堆叠。

统一规则：

- 图片不写进 XML 内联外链；
- 先下载本地并验证是真图；
- 用 `docs +media-insert` 插到正文锚点附近；
- 必须防止图片堆文末；
- 游戏严禁用生成图冒充真实游戏画面；
- 美食关键状态优先真实图，视觉封面/信息图可生成，但避免不可控文字。

### 6. 回读校验

交付前至少检查：

- 文档已真实创建；
- 正文不是空壳；
- 没有重复标题；
- 没有 XML/HTML 代码块泄漏；
- 没有 `<input>`、`<card>`、`<section>` 等非白名单标签裸露；
- 没有内部锚点、`image-plan.tsv`、`no_reliable_image`、CLI 命令露出；
- 分支内容没有串场；
- 如该分支要求媒体，图片在对应章节附近；旅游无需图片校验；健身若插图则校验图片在对应动作/餐盘章节附近，未插图时校验真实视频/图解 bookmark 和动作卡足够；
- 链接真实可打开或已标明需复查；
- 高风险/不可行点没有被硬编通过。

### 7. 最终回复

成功时只回复：

- 文档标题；
- 飞书 URL；
- 1–3 条亮点或出发/训练/制作/游玩前复查项。

不要粘贴完整正文，不解释内部路由和执行过程。

失败时回复：

- 哪一步失败；
- 是否已创建文档；
- 已生成的本地文件路径（如有）；
- 可重试建议。

## 多分支同文档规则

当用户明确要求一个文档里包含多个攻略类型时，可以在同一个飞书文档中写多个主章节。

顺序：

1. 先创建一个总文档；
2. 按用户主目标排序；
3. 每个分支章节写入前读取对应分支；
4. 每个分支只写自己的章节；
5. 每个章节有独立标题、执行清单和安全边界；
6. 文末可以有一个“统一复查清单”，但不要把四类规则混在同一段里。

示例：

- “云南旅行 + 旅途中减脂不反弹”：主章节旅游，附章节健身饮食；
- “朋友聚会菜单 + 饭后游戏攻略”：主章节美食，附章节游戏；
- “健身房新手 + 一周高蛋白便当”：主章节健身，附章节美食。

## 输出质量底线

无论进入哪个分支，最终攻略必须做到：

- 逻辑清楚：先解决用户最关心的核心问题；
- 内容充盈：不能只有几行表格或泛泛建议；
- 可执行：用户知道今天/第一步做什么；
- 边界清楚：知道什么时候不该继续、哪里要复查、哪些条件会改变方案；
- 结构服务内容：表格、callout、grid、checkbox、bookmark 都要服务用户决策或执行；旅游不用图片，健身只用真实可靠图片，美食/游戏按各自规则使用图片；
- 不模板化：结构跟随用户需求，不每次套同一目录；
- 不泄漏代码：不出现 XML 代码块、HTML 表单、内部字段或分支执行过程。

