[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-95201":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":16,"rankGlobal":10,"rankLanguage":10,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":20,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":42,"readmeContent":43,"aiSummary":10,"trendingCount":15,"starSnapshotCount":15,"syncStatus":14,"lastSyncTime":44,"discoverSource":45},95201,"jiaojie-skill","Jordanwei1\u002Fjiaojie-skill","Jordanwei1","交接 Skill（Jiaojie）：跨窗口、跨模型、跨设备、跨语言的 AI 上下文交接工具。换窗口，不失忆；换模型，不重来。Open-source AI context handoff.","https:\u002F\u002Fjordanwei1.github.io\u002Fjiaojie-skill\u002F",null,"Python",103,5,2,0,42.33,"MIT License",false,"main",true,[22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"agent-skills","ai-agent","ai-agents","ai-memory","claude-code","claude-code-skill","codex","codex-skill","context-engineering","context-handoff","cross-model","cursor","cursor-skills","gemini-cli","gemini-cli-skills","handoff","llm","open-source","openclaw","openclaw-skill","2026-08-24 04:01:23","\u003Cdiv align=\"center\">\n\n# 交接.skill\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fhero.gif\" alt=\"Jiaojie Hero Animation\" \u002F>\n  \u003Cbr\u002F>\n  \u003Csub>AI 换了，工作没断。\u003C\u002Fsub>\n\u003C\u002Fp>\n\n> *「换窗口，不失忆；换模型，不重来。」*\n\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](LICENSE)\n[![Agent Skills](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAgent%20Skills-Standard-green)](https:\u002F\u002Fagentskills.io)\n[![skills.sh](https:\u002F\u002Fskills.sh\u002Fb\u002Fjordanwei1\u002Fjiaojie-skill)](https:\u002F\u002Fwww.skills.sh\u002Fjordanwei1\u002Fjiaojie-skill\u002Fjiaojie)\n[![Multi-Runtime](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FRuntime-Claude%20Code%20·%20Codex%20·%20Cursor%20·%20OpenClaw%20·%20Gemini%20CLI-blueviolet)](#安装)\n\n\u003Cbr>\n\n**交接 Skill（Jiaojie）把当前目标、决策、废案、关键产物和下一步交给另一个 AI，让它从真正停下的位置继续。**\n\n\u003Csub>一个跨窗口、跨模型、跨设备、跨语言的开源 AI 上下文交接工具，基于开放的 [Agent Skills 协议](https:\u002F\u002Fagentskills.io)；实际验证范围以公开兼容矩阵为准。\u003C\u002Fsub>\n\n\u003Cbr>\n\n[handoff skill](https:\u002F\u002Fgithub.com\u002Fmattpocock\u002Fskills\u002Ftree\u002Fmain\u002Fskills\u002Fproductivity\u002Fhandoff) 证明了把任务摘要交给下一个 Agent 是可行的。\u003Cbr>\n那为什么只交摘要？把意图演化、废弃方案、负知识、产物和真正的下一步一起交过去。\u003Cbr>\n只需说一句「交接一下」，Jiaojie 自动完成导出、接收确认和连续性验证。\n\n[看效果](#效果示例) · [安装](#安装) · [它交接了什么](#jiaojie-交接了什么) · [工作原理](#工作原理)\n\n\u003Cbr>\n\n**其他语言 \u002F Other Languages:**\n\n[English](README_EN.md) · [Français](README_FR.md) · [日本語](README_JA.md) · [한국어](README_KO.md) · [Español](README_ES.md)\n\n\u003Cbr>\n\n[![Release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002FJordanwei1\u002Fjiaojie-skill?label=release)](https:\u002F\u002Fgithub.com\u002FJordanwei1\u002Fjiaojie-skill\u002Freleases\u002Flatest) [![validate](https:\u002F\u002Fgithub.com\u002FJordanwei1\u002Fjiaojie-skill\u002Factions\u002Fworkflows\u002Fvalidate.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FJordanwei1\u002Fjiaojie-skill\u002Factions\u002Fworkflows\u002Fvalidate.yml)\n\n\u003C\u002Fdiv>\n\n---\n\n## 效果示例\n\n### 中文交出，法语接住\n\n一段多轮编程对话已经走到这里：\n\n```text\n用户      ❯ 支付 webhook 偶尔会被重复处理。\n            不能更换数据库，也不能更换支付平台。\n\nAI A      ❯ request_id 方案验证失败：同一个事件重投时，\n            request_id 会变化，不能作为幂等键。\n\n用户      ❯ 不要使用 Redis 锁，我不接受新的运行依赖。\n            改用支付平台的 event_id 和数据库唯一约束。\n\n用户      ❯ 下一步并行修改 handler.py 和补 replay 测试，\n            最后再更新法语运行手册。交接一下。\n            接收方在另一台电脑上，把必需文件一起带走。\n\nAI A      ❯ 已选择 handoff.zip：下一步依赖 handler.py\n            和 failure-log.txt，接收方无法访问当前工作区。\n```\n\n用户把交接包交给一个没有原会话的 AI B：\n\n```text\n用户      ❯ 接收这个交接包。用法语回复，但不要继续执行。\n\nAI B      ❯ Réception réussie. Je n’ai pas poursuivi,\n            conformément à votre demande.\n\n            Objectif actuel : empêcher le retraitement des webhooks\n            avec event_id et une contrainte unique.\n\n            Point d’arrêt : request_id a échoué techniquement ;\n            Redis a été refusé par l’utilisateur. Ne réactiver\n            aucune de ces deux options.\n\n            Prochaine étape : modifier handler.py et ajouter les\n            tests de rejeu en parallèle, puis mettre à jour le\n            runbook en français.\n\n            À revérifier : la stabilité actuelle de event_id chez\n            le fournisseur et l’autorisation avant toute modification.\n```\n\n换了会话、模型、设备和语言之后，接收 AI 仍然：\n\n- 没有重新询问已经回答的问题；\n- 没有复活技术失败的 `request_id` 方案；\n- 没有复活被用户否决的 Redis 方案；\n- 找到了相同的并行下一步，并按要求停在执行之前。\n\n这就是 Jiaojie 要保护的工作连续性。跨模型、跨语言和 Runtime 的实际表现，以公开评测结果为准。\n\n---\n\n## 安装\n\nJiaojie 基于开放的 [Agent Skills](https:\u002F\u002Fagentskills.io) 标准。安装器能把 Skill 放进多个 Agent 的发现目录；这只表示“能够安装”，实际语义兼容性以项目公开的测试证据为准。\n\n### 方式一：直接告诉你的 AI\n\n把下面这句话发给支持安装 Skill 的 AI：\n\n```text\n帮我安装这个 Skill：\nhttps:\u002F\u002Fgithub.com\u002FJordanwei1\u002Fjiaojie-skill\n```\n\n### 方式二：通用安装器\n\n使用 [vercel-labs\u002Fskills](https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fskills) 安装：\n\n```bash\nnpx skills add Jordanwei1\u002Fjiaojie-skill\n```\n\n默认安装到当前项目。希望所有项目都能使用时：\n\n```bash\nnpx skills add Jordanwei1\u002Fjiaojie-skill --global\n```\n\n也可以先试用，不写入本地 Skill 目录：\n\n```bash\nnpx skills use Jordanwei1\u002Fjiaojie-skill\n```\n\n### 方式三：GitHub CLI\n\nJiaojie 的 `SKILL.md` 位于仓库根目录，因此使用精确路径安装：\n\n```bash\ngh skill install Jordanwei1\u002Fjiaojie-skill SKILL.md --agent codex --scope user\n```\n\n把 `codex` 换成 `claude-code`、`cursor`、`gemini-cli`、`openclaw` 或其他受支持的 Agent 标识即可。需要可复现安装时，在正式版本发布后使用 `--pin \u003Ctag-or-commit>`。\n\n### Codex\n\n在 Codex 中也可以直接调用内置安装器：\n\n```text\n请使用 $skill-installer 从下面的仓库安装 Jiaojie：\nhttps:\u002F\u002Fgithub.com\u002FJordanwei1\u002Fjiaojie-skill\n```\n\nCodex 通常会自动发现新安装的 Skill；如果没有出现，重启 Codex 后再检查。OpenAI 官方说明见 [Build skills](https:\u002F\u002Flearn.chatgpt.com\u002Fdocs\u002Fbuild-skills)。\n\n### 不支持自动安装的 Runtime\n\n直接向 AI 提供 [`SKILL.md`](SKILL.md)。Jiaojie 的最低接收能力只要求能够读取 Markdown；脚本、文件系统和压缩包支持属于增强能力。\n\n---\n\n### 使用\n\n生成交接：\n\n```text\n交接一下。\n```\n\n只接收、不执行：\n\n```text\n接收这个交接包，先给我接收回执，不要继续执行。\n```\n\n确认后继续：\n\n```text\n继续执行交接包中的建议下一步。\n```\n\nJiaojie 默认选择最小充分产物：普通任务使用 `handoff.md`；必要文件必须随包移动时使用 `handoff.zip`；只有正式审计、跨组织交付或证据要求才使用 `handoff-audit.zip`。\n\n---\n\n## Jiaojie 交接了什么\n\n普通摘要回答“聊过什么”，Jiaojie 要回答“现在到底做到哪里，为什么，以及下一步如何不走回头路”。\n\n| 层 | 保存内容 | 解决的问题 |\n| --- | --- | --- |\n| HOT | 当前目标、精确停止点、一个推荐下一步、完成标准 | 接收 AI 从正确位置开始 |\n| WARM | 有效决定、意图演化、约束、已回答问题、废案与失败原因 | 不重问、不反悔、不复活旧方案 |\n| COLD | 必要证据、原始材料、附件、Manifest、哈希与缺失声明 | 需要时可定位、可移动、可验证 |\n\n它还明确区分四件容易被混淆的事：\n\n- **技术失败**：方案经过尝试但不可行；\n- **用户否决**：用户不接受，即使技术上可行也不能擅自恢复；\n- **历史决定**：解释过去，但不自动授予现在执行、发布、付款或删除的权限；\n- **外部事实**：可能已经过期，接收后必须按需要重新验证。\n\nJiaojie 的“无损”只指声明范围内、用户可见知识边界中的工作连续性。它不保存模型参数、神经状态、隐藏推理或任何平台未提供的内容。\n\n---\n\n## 工作原理\n\n```mermaid\nflowchart LR\n    A[\"当前会话\u003Cbr\u002F>目标 · 决策 · 废案 · 产物\"] --> B[\"EXPORT\u003Cbr\u002F>选择最小充分格式\"]\n    B --> C[\"handoff.md\"]\n    B --> D[\"handoff.zip\"]\n    B --> E[\"handoff-audit.zip\"]\n    C --> F[\"RECEIVE\u003Cbr\u002F>先确认语义与缺口\"]\n    D --> F\n    E --> G[\"VERIFY_STRUCTURE\u003Cbr\u002F>验证结构与字节\"]\n    G --> F\n    F --> H[\"新会话 \u002F 新模型 \u002F 新设备 \u002F 新语言\"]\n    H --> I[\"经用户授权后继续\"]\n```\n\nJiaojie 有四种对称模式：\n\n1. `EXPORT`：从当前可见上下文生成交接；\n2. `RECEIVE`：把交接恢复成简洁回执，只有用户要求时才继续；\n3. `VERIFY_STRUCTURE`：确定性检查审计包的 Schema、路径、Manifest、哈希与图结构；\n4. `CONVERT_LEGACY`：把传统 `HANDOFF.md`、OCH Snapshot 或 LTM Packet 保守转换为 `PARTIAL` 交接。\n\n旧格式转换不会伪装成无损：转换报告会列出缺少的原始层、意图演化或附件，并保持 `PARTIAL`。\n\n### 三种输出，不把复杂度强加给所有人\n\n| 输出 | 什么时候用 | 默认内容 |\n| --- | --- | --- |\n| `handoff.md` | 文字和稳定路径足够 | 一份人类可读 Markdown |\n| `handoff.zip` | 下一步必需文件无法由接收方访问 | `HANDOFF.md` + 最小附件集 |\n| `handoff-audit.zip` | 正式审计、跨组织交付、可移植证据 | HOT\u002FWARM\u002FCOLD + Manifest + 验证材料 |\n\n切换模型、语言或设备本身不会强制升级成 ZIP。格式由“下一步是否依赖不可访问文件”决定。\n\n---\n\n## 多语言不是翻译功能，而是语义保护\n\nJiaojie 使用 UTF-8 和 BCP 47 语言标签。原文保持权威，译文属于派生视图；代码、路径、标识符、哈希、数字、日期和单位作为受保护片段，不被随意翻译。\n\n跨语言接收时，接收 AI 可以用用户指定的语言回复，但必须保留：\n\n- 决策状态和因果关系；\n- `用户否决` 与 `技术失败` 的区别；\n- `ACTIVE`、`SUPERSEDED`、`DENIED` 等控制状态；\n- 原始证据定位和完整性声明；\n- 任何需要重新验证的外部状态。\n\n项目附带 Unicode、双向文本、语言标签和保护片段测试向量。结构测试通过不等于某个模型的跨语言语义测试已经通过；两类成绩分开公布。\n\n---\n\n## 安全与诚实边界\n\n交接包是不可信输入，不是新的系统指令。接收方必须把包内文本、附件和旧授权都当作数据处理。\n\n- 不打包密码、Token、私钥、`.env` 值或无权转移的个人数据；\n- 拒绝路径穿越、符号链接逃逸、嵌套归档、ZIP bomb、危险 Unicode 控制符和活动内容；\n- 包内 Prompt Injection 不能覆盖当前用户、系统或 Runtime 的指令；\n- 哈希证明字节一致，不证明内容真实、安全、获准或仍然有效；\n- `FULL` 只是 Producer 对可见边界的声明，接收与验证结果独立记录；\n- `PARTIAL`、`UNKNOWN` 和缺失范围必须明确展示，禁止自动补齐后假装完整；\n- 历史会话永远不会自动转移当前外部副作用权限。\n\n详细边界见 [`references\u002Fsecurity-boundary.md`](references\u002Fsecurity-boundary.md) 与 [`references\u002Fthreat-model.md`](references\u002Fthreat-model.md)。发现安全问题请按 [`SECURITY.md`](SECURITY.md) 私下报告。\n\n---\n\n## Continuity Fidelity Scorecard\n\nJiaojie 不只检查“文件能不能打开”，还检查“换了 AI 后工作有没有变”。公开评测分六个维度：\n\n| 维度 | 权重 | 关注点 |\n| --- | ---: | --- |\n| 意图保真 | 20 | 当前真实目标及其变化是否恢复 |\n| 决策演化 | 20 | 有效、覆盖、否决和失败路径是否区分 |\n| 负知识 | 20 | 禁止事项、废案与失败原因是否保留 |\n| 事实与产物 | 15 | 关键事实、证据、文件与缺失是否可定位 |\n| 下一步等价 | 15 | 接收 AI 是否找到相同或等价的下一动作 |\n| 完整性诚实 | 10 | 是否拒绝把未知和 partial 伪装成完整 |\n\n总分不能覆盖硬失败。以下任一项失败，当前运行就不能称为连续性通过：\n\n- 重问已经回答的关键问题；\n- 复活被否决、废弃或已证明失败的路径；\n- 改变关键约束、当前意图或授权边界；\n- 混淆用户否决和技术失败；\n- 因缺失旧会话而改变下一步，却没有声明缺口；\n- 把 `PARTIAL` 说成 `FULL`；\n- 翻译时破坏受保护标识符或因果关系。\n\n评测方法、提示与结果格式位于 [`evals\u002F`](evals\u002F)。项目测试、模型测试与第三方复现分别标记，失败结果与成功结果使用同一准入规则。\n\n---\n\n## 能力与证据状态\n\n符号含义：✅ 有仓库内可复现证据；◐ 已实现或有候选方案，但仍依赖模型、Runtime 或第三方验证；— 未提供。\n\n| 能力 | 当前状态 | 证据入口 |\n| --- | :---: | --- |\n| 七个通用领域模板 | ✅ | [`references\u002Fdomain-coding.md`](references\u002Fdomain-coding.md) 等领域参考 |\n| 意图与决策演化 | ✅ | 协议、Schema 与离线用例 |\n| 跨设备自包含附件 | ✅ | `handoff.zip` 回环测试 |\n| HOT \u002F WARM \u002F COLD 原始层 | ✅ | LCH 审计格式与测试向量 |\n| `FULL \u002F PARTIAL \u002F UNKNOWN` 声明 | ✅ | 模板、Schema 与验证器 |\n| 接收语义确认 | ✅ | RECEIVE 流程与回环测试 |\n| 确定性安全与结构测试 | ✅ | [28 项公开记录](evals\u002Fresults\u002Fproject-deterministic-2026-08-20\u002F) 与 CI |\n| 跨模型、跨语言语义连续性 | ◐ | 方法和运行器已提供；只按公开运行单元申报 |\n| 八个 Runtime 的真实安装与行为 | ◐ | 兼容记录模板已提供；待逐版本公开证据 |\n| 第三方独立复现 | — | 尚未发生，欢迎社区提交 |\n\n当前发布状态是 **`IMPLEMENTED`**：Skill、协议资源、脚本、示例和 CI 已实现。它不是 `PROJECT_VERIFIED` 或 `COMMUNITY_VERIFIED`；只有对应证据完成并入库后才升级状态。\n\n---\n\n## 仓库结构\n\n```text\njiaojie-skill\u002F\n├── SKILL.md                 # AI 首先读取的轻量工作流\n├── agents\u002Fopenai.yaml       # Codex \u002F OpenAI 界面元数据\n├── references\u002F              # 协议、安全、多语言、领域与兼容细节\n├── scripts\u002F                 # 导出、接收、转换、扫描与验证工具\n├── assets\u002F\n│   ├── templates\u002F           # 人类交接与审计包模板\n│   ├── schemas\u002F             # JSON Schema\n│   ├── vectors\u002F             # 确定性测试向量\n│   └── registry\u002F            # 版本锁定的注册表数据\n├── examples\u002F                # 七领域公开演示\n├── evals\u002F                   # 连续性评分卡与复现契约\n├── tests\u002F                   # 离线自动测试\n└── .github\u002F                 # CI、Issue 与 PR 模板\n```\n\n核心 Skill 保持简短，普通交接只需读取 [`references\u002Fsimple-workflow.md`](references\u002Fsimple-workflow.md)。只有正式审计、旧格式转换、多语言歧义或领域特殊情况才按需加载其他参考。\n\n---\n\n## 它不是什么\n\n- 不是无限记忆，也不保证平台没有截断输入；\n- 不是逐字复制整段聊天；\n- 不保存或推测隐藏思维；\n- 不让旧会话越权控制新会话；\n- 不用一个自评分数替代独立模型和人工复现；\n- 不承诺所有 Runtime 已经通过同样等级的验证。\n\n如果源会话已经缺失关键内容，正确结果是 `PARTIAL` 或 `UNKNOWN`，不是编造一个看起来完整的包。\n\n---\n\n## 贡献与社区\n\n最有价值的贡献不是再写一份相似摘要模板，而是提交可复现的新证据：\n\n- 新模型、语言与 Runtime 的真实运行记录；\n- 能暴露连续性失败的新案例；\n- 对现有协议、Schema、安全边界或转换器的修复；\n- 第三方 Agent 对 Jiaojie 格式的实现；\n- 独立盲评与失败复现。\n\n开始前请阅读 [`CONTRIBUTING.md`](CONTRIBUTING.md)、[`COMMUNITY.md`](COMMUNITY.md) 和 [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md)。协议变化遵循 [`GOVERNANCE.md`](GOVERNANCE.md)；安全问题不要公开建 Issue。\n\n---\n\n## 路线图\n\n- [x] 人类优先的三档输出与对称导出\u002F接收；\n- [x] 意图演化、负知识、完整性和当前授权边界；\n- [x] LCH 0.1 审计路径、Schema、哈希、转换器和安全扫描；\n- [x] 七领域公开演示与确定性 CI；\n- [ ] 五个主流模型的交叉发送\u002F接收公开结果；\n- [ ] 至少八个 Runtime 的版本化真实证据；\n- [ ] 三位独立贡献者完成盲评和第三方复现；\n- [ ] 社区共识形成后冻结稳定版 `1.0` 协议。\n\n路线图中的未完成项不会出现在兼容矩阵的 ✅ 中。\n\n---\n\n## 致谢与许可\n\nJiaojie 借鉴了开放 Agent Skills 生态中“把工作交给下一位 Agent”的产品方向，并在 [`NOTICE.md`](NOTICE.md) 中记录参考项目和第三方数据来源。Jiaojie 的代码、文档和原创视觉不复制这些项目的实现或素材。\n\n[MIT License](LICENSE) © 2026 Jordan Wei\n\n> 让“交接一下”成为每个 AI 都理解的标准动作。\n","2026-08-23 02:30:07","CREATED_QUERY"]