<< All versions

Skill v1.0.0

currentAutomated scan100/100
sichenai/sichen-skills/new-convo-handoff
──Details
PublishedSeptember 27, 2026 at 09:01 PM
Content Hashsha256:13322e2ddf2c0a91...
Git SHA011fe7c7539b
──Files
Files (1 file, 17.9 KB)
SKILL.md17.9 KBactive
SKILL.md · 235 lines · 17.9 KB

version: "1.0.0" name: new-convo-handoff description: 新对话上下文交接指令生成器(v2.0,支持跨体模式)。当用户因上下文过长/想新开对话继续某个长项目、问"新开对话怎么写 Prompt""启动指令怎么写""怎么把上下文交接给新会话"时说;也用于把工作交接给另一个智能体(跨智能体/跨体交接,如 WorkBuddy ↔ Zcode/Claude Code/Codex)。触发词包括:新开对话、新对话、上下文太长、启动指令、handoff、交接上下文、怎么写prompt给新会话、跨智能体、跨体交接、转给 Zcode、让另一个智能体接手。触发后,AI 自动扫描当前项目的关键文档(框架/PRD/设计稿/约束文件),抽取真源文件指针、隐性规则(已否决清单/口头约定/失真点)、跨文件同步规则、速查表,生成一份可直接粘贴进新对话首条消息的"启动指令" Markdown(指针式,不复制真源内容),让新会话无需复述历史对话即可承接工作;跨体模式下额外生成环境差异声明、能力边界、回交接协议与闭环钩子。基于 2026-08-27 WorkBuddy↔Zcode POC 实测验证。 agent_created: true


新对话上下文交接指令生成器

何时触发

用户出现以下任意信号时启用本 skill:

  • 明确说"新开对话""新对话""上下文太长/太满,开个新会话"
  • 问"新开对话怎么写 Prompt""启动指令怎么写""怎么把上下文交接给新会话"
  • 提到 handoff / 上下文交接 / 让另一个会话接着干
  • 跨体信号(v2.0 新增):提到"转给 Zcode/Claude Code/Codex/另一个智能体""跨智能体/跨体交接""让 XX 工具接手这个项目"

目标:产出一份指针式交接指令文档(指针 + 隐性规则 + 时效自检,不复制真源内容)。两种模式:

  • 同体模式:粘贴到同一智能体的新对话首条消息,按指针承接工作。
  • 跨体模式:交接给另一个智能体(如 WorkBuddy ↔ Zcode)。目标智能体读指令后不仅承接任务,还继承纪律(红线/否决清单),并把执行结果按协议写回执,形成闭环。

模式判定(Step 0):出现跨体信号或用户指定了目标智能体 → 跨体模式;否则同体模式。判定不了就问一句。

跨体模式的三条铁律(2026-08-27 POC 实测教训,违反即翻车)

  1. 回执闭环必须有钩子:光写"对方写回执"是幽灵闭环——发起方智能体没有任何机制会自动读回执。必须在发起方的项目记忆文件(MEMORY.md 或等价物)写入钩子:「若 outputs/ 下有 xx_回执_*.md,任何会话先读最新回执再继续相关工作」。POC 首版漏此钩子被对抗性审查抓为严重问题(幽灵闭环)。
  2. 红线用指针不用复制,但必须设硬前提:安全红线(不编造/来源声明/溯源纪律)若半复制半指针,两头不靠——对方跳读就漏。正确做法:指令顶部设「硬前提」节(执行任何任务前先读记忆文件全文),红线节只写一行指针。理由:复制=第二真相源会漂移,但对方环境无自动注入,必须有强制读取动作兜底。
  3. 自相矛盾自检:生成后通读全文,查「修改/同步规则」与「禁止编辑」是否打架(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 · 告知用法

同体模式:下次新开对话,把该文件内容整篇粘贴为首条消息,新会话会自动读文件、注入上下文,然后在"我要做的是"处填具体任务。

跨体模式四步:

  1. 把记忆钩子写入发起方 MEMORY.md「待决问题」或等价节(见铁律 1,这步是生成指令时同步做的,不是提醒用户做)
  2. 目标智能体打开项目,首条消息:读 <指令文件路径>,按「我要做的是」节执行
  3. 对方完成后会在 outputs/ 写回执 <目标体>_回执_<日期>_<HHMM时间戳>.md(同日多会话防覆盖——日期精确到分钟级时间戳;回执文件名带序号或时间的写法均可,唯一要求 = 能区分同日多份。实测教训:仅到日期的命名在多会话并发时会互相覆盖,2026-08-28 Zcode 实测抓出)
  4. 回发起方智能体说「看回执」,由发起方验收接回(独立抽验,不只轻信回执内容)

跨体 POC 验证任务模板(首次交接给某个智能体时,把两组任务写入「我要做的是」节做能力验证):

  • 第 1 组 · 指针遵循:一个只报告不修改的核对任务(如 sitemap 与文件差异比对)——验证它真去读了真源文件
  • 第 2 组 · 红线触发:一个带诱导的任务(如"把非实测数据写得更确定些")——验证它在利诱下守不守来源纪律。⚠️ 第 2 组必须设计红线触发面,否则必然假通过(POC 首版实测方法无红线触发面,被审查抓出后才补)

跨体模式输出模板(v2.0,在通用模板骨架上增补以下六节)

markdown
# 跨体交接指令(<项目名> · 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 两组验证任务】

自检清单(跨体模式生成后必过,缺一重做):

  1. 记忆钩子已写入发起方 MEMORY.md?未写 = 幽灵闭环
  2. 硬前提节存在且指向记忆文件?
  3. 「修改/同步规则」与「禁止编辑」有无打架?(铁律 3)
  4. 有 POC 验证任务且第 2 组有红线触发面?
  5. 全部指针路径 ls 校验存在(零悬空)?

输出模板(同体模式 · Markdown 骨架)

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 确认路径存在:存在则读取参考结构;若不存在(项目已清理/迁移),跳过本步,不报错。

All versions