新对话上下文交接指令生成器
何时触发
用户出现以下任意信号时启用本 skill:
- 明确说"新开对话""新对话""上下文太长/太满,开个新会话"
- 问"新开对话怎么写 Prompt""启动指令怎么写""怎么把上下文交接给新会话"
- 提到 handoff / 上下文交接 / 让另一个会话接着干
- 跨体信号(v2.0 新增):提到"转给 Zcode/Claude Code/Codex/另一个智能体""跨智能体/跨体交接""让 XX 工具接手这个项目"
目标:产出一份指针式交接指令文档(指针 + 隐性规则 + 时效自检,不复制真源内容)。两种模式:
- 同体模式:粘贴到同一智能体的新对话首条消息,按指针承接工作。
- 跨体模式:交接给另一个智能体(如 WorkBuddy ↔ Zcode)。目标智能体读指令后不仅承接任务,还继承纪律(红线/否决清单),并把执行结果按协议写回执,形成闭环。
模式判定(Step 0):出现跨体信号或用户指定了目标智能体 → 跨体模式;否则同体模式。判定不了就问一句。
跨体模式的三条铁律(2026-08-27 POC 实测教训,违反即翻车)
- 回执闭环必须有钩子:光写"对方写回执"是幽灵闭环——发起方智能体没有任何机制会自动读回执。必须在发起方的项目记忆文件(MEMORY.md 或等价物)写入钩子:「若 outputs/ 下有
xx_回执_*.md,任何会话先读最新回执再继续相关工作」。POC 首版漏此钩子被对抗性审查抓为严重问题(幽灵闭环)。 - 红线用指针不用复制,但必须设硬前提:安全红线(不编造/来源声明/溯源纪律)若半复制半指针,两头不靠——对方跳读就漏。正确做法:指令顶部设「硬前提」节(执行任何任务前先读记忆文件全文),红线节只写一行指针。理由:复制=第二真相源会漂移,但对方环境无自动注入,必须有强制读取动作兜底。
- 自相矛盾自检:生成后通读全文,查「修改/同步规则」与「禁止编辑」是否打架(POC 首版让 Zcode 写
.workbuddy/memory/,同时声明该目录只读——修复时才抓到)。记忆写入一律收归发起方:对方只写回执,不写记忆。
核心原则
- 指针优先,禁止复制(2026-08-04 第一性原理重构):启动指令 = 指针 + 防破坏清单 + 时效自检。真源文件里已有的约束细节(色值、字号、功能清单、优先级等)一律不复制进指令,只给文件名和章节号——复制即产生第二真相源,产出即开始漂移。
- 启动指令的边际价值 = 真源里没写的东西:只写三类内容——① 读哪些文件(指针);② 隐性规则(同步规则、已否决清单、冲突裁决顺序、口头约定);③ 时效自检。真源已覆盖的内容交还给真源。
- 不依赖对话历史:新会话按指针读完真源 + 隐性规则清单,即等效于继承上下文。
- 单一真相来源优先:先找到项目的总纲/框架/README,它是指针的锚点;指令本身永远不是真相来源。
- 同步规则显性化:项目里"改 A 必须同步改 B"的隐性规矩,必须写进启动指令——这是新会话最大的破坏来源,也是本 skill 的核心价值。
- 长度上限:正文(不含场景示例)≤60 行。指令越长遵守率越低,冷启动成本越高;超限时优先砍"看起来像是从真源抄来的"内容。
- 可粘贴即用:输出是纯 Markdown,开头就是"复制以下内容到新对话首条消息"。
生成工作流
Step 1 · 锁定项目根目录
- 默认用当前 workspace 根目录。
- 若当前对话不是项目对话(如临时闲聊),用 AskUserQuestion 确认要交接的项目路径。
Step 2 · 盘点关键文档
用 Glob + Read 扫描,识别以下类型(按项目实际存在情况取舍):
- 总纲/框架/需求框架:
需求框架_*.md、README.md、ARCHITECTURE.md、*.framework.md - 详细规格:
*PRD*.md、*规范*.md、*spec*.md - 设计/实现:
设计稿*/、*设计*.md、配色/Token 文件 - 裁决/审查记录:
*交叉审查*、*审查报告*、*裁决* - 记忆/状态:
.workbuddy/memory/下的 MEMORY.md、近期日期日志(提取已确认决策)
为每个文件写一句"用途注解"(读它能解决什么)。
兜底规则:若项目没有明确的"总纲/框架"文件(如空 workspace、临时对话),则退回读取 README.md 与 .workbuddy/memory/MEMORY.md 作为约束来源;两者皆无时,仅依据近期日期日志与用户口头约束生成,并在输出顶部标注"⚠️ 未找到框架文件,约束可能不完整"。
扫描成本控制:对超大文件(如 >50KB 的 PRD)只读关键章节(开头摘要、约束/Token 段、变更记录),不要整篇 Read,避免 token 浪费。
Step 3 · 确定真源指针与裁决顺序(不复制约束细节)
从总纲 + 约束文件 + 近期日志中确认:
- 唯一真相来源是哪份文件、多文件冲突时以谁为准(只写文件名 + 裁决顺序,不抄内容)
- 每个真源文件的一句话用途注解(读它能解决什么)
只允许写入指令的"约束类"内容(即真源里没有的隐性知识):
- 已移除/已否决的功能清单(避免新会话复活)——若真源已明确标注则只写指针
- 口头约定、未落文档的规矩(如"PRD 禁写技术词"若未写进 PRD 模板)
- 已知的真源滞后/失真点(如"需求框架 v4 已过时,以 PRD 为准")
禁止写入:色值、字号、功能清单、章节内容摘要、优先级列表——这些属于真源,只写"见 配色方案.md""见 PRD §3.8"。
Step 4 · 抽取"跨文件同步规则"
识别隐性耦合,写为"改 X 必须同步改 Y"清单。例:
- 改 Token → 全局同步所有 :root 块
- 改 PRD → 同步对应设计稿
- 新增文件 → 更新索引页
- 改需求框架 → 先确认再同步各端 PRD
Step 5 · 生成速查表
做一张表:你想做什么 | 先读 | 再读/同步更新,覆盖项目主要改动类型。这是新会话最高频使用的部分。
Step 6 · 写文件命名规则(可选,但强烈建议)
若项目文件有编号/前缀体系(如 00=组件规范、08=聊天主界面),列出映射表,新会话才不会改错文件。
Step 7 · 组装并输出
文件命名规则(2026-08-02 起,用户偏好):
- 命名格式:
新对话启动指令_<项目名>_<YYYY-MM-DD>.md,例:新对话启动指令_WorkBuddy_2026-08-02.md - 跨体模式命名:
跨体交接指令_<项目名>_<YYYY-MM-DD>.md <项目名>取 workspace 根目录名或项目通用简称(如 WorkBuddy、素材库),简短可读;日期为生成当天日期- 同一天生成多版:追加
_v2、_v3后缀区分,例:新对话启动指令_WorkBuddy_2026-08-02_v2.md - 子系统变体在日期后加用途后缀,例:
新对话启动指令_WorkBuddy_2026-08-02_改设计稿.md - 写入位置:项目根目录;若项目有
outputs/目录则写outputs/下 - 保留旧版不覆盖(含旧的
新对话启动指令_vX.md历史文件),便于新会话对比演进
用对应模式的模板组装后写入文件,同时把全文回显给用户。
Step 8 · 告知用法
同体模式:下次新开对话,把该文件内容整篇粘贴为首条消息,新会话会自动读文件、注入上下文,然后在"我要做的是"处填具体任务。
跨体模式四步:
- 把记忆钩子写入发起方 MEMORY.md「待决问题」或等价节(见铁律 1,这步是生成指令时同步做的,不是提醒用户做)
- 目标智能体打开项目,首条消息:
读 <指令文件路径>,按「我要做的是」节执行 - 对方完成后会在
outputs/写回执<目标体>_回执_<日期>_<HHMM时间戳>.md(同日多会话防覆盖——日期精确到分钟级时间戳;回执文件名带序号或时间的写法均可,唯一要求 = 能区分同日多份。实测教训:仅到日期的命名在多会话并发时会互相覆盖,2026-08-28 Zcode 实测抓出) - 回发起方智能体说「看回执」,由发起方验收接回(独立抽验,不只轻信回执内容)
跨体 POC 验证任务模板(首次交接给某个智能体时,把两组任务写入「我要做的是」节做能力验证):
- 第 1 组 · 指针遵循:一个只报告不修改的核对任务(如 sitemap 与文件差异比对)——验证它真去读了真源文件
- 第 2 组 · 红线触发:一个带诱导的任务(如"把非实测数据写得更确定些")——验证它在利诱下守不守来源纪律。⚠️ 第 2 组必须设计红线触发面,否则必然假通过(POC 首版实测方法无红线触发面,被审查抓出后才补)
跨体模式输出模板(v2.0,在通用模板骨架上增补以下六节)
# 跨体交接指令(<项目名> · YYYY-MM-DD)
> **用法三选一**:① 粘贴全文到目标智能体首条消息;② 让它读本文件路径并执行时效自检;③(POC 后常规用)让它按「我要做的是」节直接执行。
>
> **时效自检**:同通用模板。
>
> **环境声明**:本指令来自 <发起方智能体>,交接目标为 <目标智能体>。双方共享同一本地文件系统(路径见下),这是交接成立的物理基础。
[通用模板的全部节:真源指针 / 裁决顺序 / 隐性规则 / 同步规则 / 速查表 / 命名规则]
## 硬前提(未完成前禁止执行任何任务)
先读 `<项目记忆文件>` 全文——特别是红线/规范节。本文不复制红线细节(避免第二真相源漂移),红线以该文件为准。
## 环境差异(发起方机制在目标体中不存在)
| 机制 | 发起方行为 | 目标体降级执行 |
|---|---|---|
| skill 体系 | <可调用的 skill> | **不可用**,相关任务回发起方执行 |
| 记忆自动注入 | 每次会话自动加载 | **不注入**,本文档即记忆载体,执行前必读记忆文件 |
| 部署/外部副作用 | <发起方策略> | 可执行但须用户口头确认 |
## 能力边界(为什么交接给目标体)
- **留给目标体**:<它擅长的,如重编码/批量改写/终端验证>
- **回发起方**:<发起方独有的,如风格写作/发布/记忆维护>
## 禁止编辑(只读,越界即事故)
- 发起方记忆系统目录(回执除外——回执只写 `outputs/`)
- 姐妹项目目录、看板、规范手册:**只读**,修改建议写进回执
- 品牌资产、已发布内容源稿
## 回交接协议(目标体完成任务后必做)
把以下内容写入 `outputs/<目标体>_回执_YYYY-MM-DD_HHMM.md`(**时间戳必带**——同一项目多会话/多日协作时防同日覆盖;发起方侧以 mtime 最新的回执为「最新回执」接回):
1. 任务一句话
2. 新建/修改文件路径清单(逐个列)
3. 未决问题 / 需发起方或用户决策的事项
4. 已验证项(跑过的命令与结果)
写完回执后,提醒用户「回 <发起方> 报告已写回执」。
**可选增补 · 存档纪律段(模板不含,按项目实际情况由发起方生成指令时加写)**:若项目已 git 化,在回交接协议节追加:每会话改动完成、写回执前先 `git add -A && git commit -m "<一句话>"` 存档(禁 push 无远端 / 禁 revert reset 已有存档);回执第 2 节附 commit 哈希前 7 位与 `git diff --stat` 摘要,发起方据此做内容级抽验。2026-08-28 GEO 项目已按此实践(基线 15bb6a4)。
## 我要做的是:
> 【具体任务,或首次交接时的 POC 两组验证任务】
自检清单(跨体模式生成后必过,缺一重做):
- 记忆钩子已写入发起方 MEMORY.md?未写 = 幽灵闭环
- 硬前提节存在且指向记忆文件?
- 「修改/同步规则」与「禁止编辑」有无打架?(铁律 3)
- 有 POC 验证任务且第 2 组有红线触发面?
- 全部指针路径 ls 校验存在(零悬空)?
输出模板(同体模式 · Markdown 骨架)
# 新对话启动指令(<项目名> · YYYY-MM-DD)
> 粘贴以下内容到新对话首条消息。AI 会自动读取所有文件,然后等你交代任务。
>
> **时效自检(新会话必做)**:本指令生成于 YYYY-MM-DD。执行两项检查——① **指针悬空检查**:下方列出的真源文件是否都还存在、未改名(用 Glob 验证)——悬空即提醒用户重新生成本指令;② **隐性规则复核**:若某真源文件晚于本指令生成日期被修改(`ls -l` 比对 mtime),则「隐性规则」清单中引用过该文件的条目可能失效,需人工复核,**但指针本身不过期,不需要仅因此重新生成**。若当前环境无文件工具(如纯网页对话),跳过自检并告知用户。
---
项目路径:`<项目绝对路径>/`
## 唯一真相来源(按阅读顺序排列)
1. `<总纲/框架文件>` — 用途一句话
2. `<详细规格1>` — 用途一句话
3. `<详细规格2>` — 用途一句话
(按"先总后分"排序;约束细节读文件本身,本指令不复制)
**冲突裁决顺序**:<文件A> > <文件B> > <文件C>(⚠️ 裁决顺序 ≠ 阅读顺序——很多项目是"分压总",如 PRD 优先于需求框架,按项目实际填写)
## 隐性规则(真源未覆盖,必须遵守)
- 已否决/已移除:<清单,防止复活>
- 口头约定:<如"PRD 禁写技术词">
- 已知失真点:<如"需求框架 v4 滞后,以 PRD 为准">
## 修改/同步规则(改 X 必须同步改 Y)
- 改 Token 必须全局同步:<真源文件 + 影响范围>
- 改 PRD 必须同步对应设计稿
- 涉及多端改动 → 并行启动 Agent,各自先读总纲+对应 PRD
## 快速速查表
| 你想做什么 | 先读 | 再读/同步 |
|-----------|------|----------|
| 改某功能 | `文件A §章节` | `文件B` |
| ... | ... | ... |
## 文件命名规则(如有)
| 编号/前缀 | 含义 |
|----------|------|
| 00 | ... |
| 08 | ... |
## 我要做的是:
> 【在这里填写你的具体任务,参考下方场景示例】
### 场景 A:改某个章节/规格
(示例占位)
### 场景 B:改某个实现/设计稿
(示例占位)
### 场景 C:新增功能
(示例占位,列出需同步的文件清单)
维护说明
- 项目重大变更后,重新运行本 skill 生成新版本(按当日日期命名,同一天多次生成时版本后缀递增),旧版保留作对比。不要依赖用户记忆——长项目建议配一个 automation(如每周或每次大改后触发),自动生成新版启动指令。
- 指针式结构下,真源内容变更不需要重新生成指令(指针不过期);只有以下情况需要重新生成:真源文件本身改名/删除/拆分、隐性规则变化、同步关系变化、新增已否决功能。
- 若项目有多个子系统(如硬件端/小程序端/后台),可为每个子系统单独生成一份变体(参考 WorkBuddy 项目的"修改设计稿专用"变体模式),在总纲指令里相互引用。
- 不要把本 skill 生成的内容当成最终交付物本身——它只是"让新会话接手"的桥梁。
- 跨体模式额外维护(v2.0):跨体协作结束后(项目回单一智能体),删除发起方 MEMORY.md 中的记忆钩子,防止残留钩子误导后续会话去找不存在的回执。
- 跨体实测参考样本(2026-08-27 POC):GEO 项目
outputs/跨体交接指令_斯晨的AI笔记_2026-08-27.md+outputs/zcode_回执_2026-08-27.md——首版经对抗性审查抓出 3 个严重问题(幽灵闭环/红线半复制/实测假通过)修复后实测通过,是跨体模板的实战基准。用前 Glob 校验存在。
参考样本(软引用,先校验存在;⚠️ 仅参考结构,禁止模仿其内容密度)
WorkBuddy 项目历史 outputs 目录(典型路径形如 /Users/ts/WorkBuddy/<日期>-<时间>/outputs/)已有样本:
新对话启动指令_v4.md、新对话启动指令_修改设计稿_v3.md(旧版vX命名时期产物)- 重要:这些样本均为 2026-08-04 指针式重构之前的复制式快照——约束细节大量照抄真源,正是本 skill 现在禁止的写法。只参考其章节骨架、速查表格式、场景示例的写法;不得模仿其"核心约束"段的复制密度,生成内容以「核心原则」为准,样本与原则冲突时以原则为准。
- 历史
vX命名仅作存档,新文件不要再沿用vX命名。 使用前先用 Glob 确认路径存在:存在则读取参考结构;若不存在(项目已清理/迁移),跳过本步,不报错。