Workbuddy Context Handoff

SKILL开发
开发 未标注权限 许可证不明确

给 WorkBuddy(桌面端 CodeBuddy Code 运行时)配置基于 hooks 的上下文 handoff 门禁 —— 上下文占用达阈值时自动强制产出 handoff 文档,新会话自动注入继续干活。也用于排查 WorkBuddy hooks / 上下文压缩阈值 / transcript 用量相关问题。触发场景:上下文到 N% 自动生成 handoff、交接文档、新会话续接、hooks 怎么配、为什么自动压缩了、上下文用量怎么算、context handoff、auto compact。注意:本技能的平台路径与 hook 事件名是 WorkBuddy 专有,不适用于其它 agent 运行时。

一句话选型结论

按资料字段整理

Workbuddy Context Handoff是开发类的 Agent Skill,安装方式:GitHub 仓库,权限级别未标注,许可证不明确,没有现成安装命令,需按说明手动放置 SKILL.md。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式GitHub 仓库 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 agent-skills
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

GitHub 仓库
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    按安装说明或仓库 README,把 SKILL.md 放到客户端的 skills 目录(一般一个技能一个文件夹)。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方renky1025仓库 agent-skills · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式GitHub 仓库安装包 renky1025/agent-skills
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 2026-09-25
正文体量7.4 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 基础信息齐全,可以先按说明装一个试试。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有现成安装命令,要按安装说明或仓库 README 手动放置。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
Workbuddy Context Handoff当前 未标注权限 GitHub 仓库 未标注 未标注 无
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

7.4 KB
模型实际读到的说明书原文,来自技能仓库

WorkBuddy 上下文 handoff 门禁

Purpose

在 WorkBuddy 桌面端搭一条"上下文快满 -> 强制产出 handoff 文档 -> 新会话自动续接"的流水线。

  • 触发端:Stop hook,按 transcript 里的 token 用量判断是否到阈值,到了就用
    {"continue": false, "reason": "..."} 强制模型先写 handoff。
  • 注入端:SessionStart hook,把本项目最新未被消费的 handoff 注入新会话上下文。
  • 附带用途:解释/排查 WorkBuddy 的自动压缩阈值、hooks 事件与 transcript 用量计算。

When to Use

  • 用户要"上下文到 N% 自动生成 handoff / 交接文档 / 新会话续接"。
  • 用户问 WorkBuddy hooks 怎么配、为什么自动压缩了、上下文用量怎么算。
  • 需要定位 WorkBuddy 桌面端的运行时行为(阈值、config option、hook 事件)。
  • 触发词:上下文交接、handoff、上下文压缩、自动压缩、hooks 配置、新会话续接、
    context handoff、auto compact。

When NOT to Use

  • 用户只是想知道"我现在用了多少上下文" -> 直接按 transcript 算一次回答,不必配 hook。
  • 目标运行时不是 WorkBuddy 桌面端(路径、事件名、环境变量都不同)-> 不适用,先确认运行时。
  • 用户要的是一份手工交接文档 -> 直接写,不需要这套门禁。

Workflow

  1. 确认位置与备份:定位 settings(用户级 ~/.workbuddy/settings.json 或项目级
    <proj>/.workbuddy/settings.json),先备份,再读现有 hooks 键。
  2. 写三个脚本到 ~/.workbuddy/hooks/:handoff-trigger.mjs(Stop)、
    handoff-resume.mjs(SessionStart)、run-hook.sh。各文件职责与防死循环要求见
    references/hook-implementation.md。
  3. 注册 hooks(合并进 settings 的 hooks 键,不要整体覆盖):
"hooks": {
  "Stop": [
    { "hooks": [ { "type": "command", "command": "<abs>/run-hook.sh <abs>/handoff-trigger.mjs", "timeout": 15 } ] }
  ],
  "SessionStart": [
    { "matcher": "startup|clear",
      "hooks": [ { "type": "command", "command": "<abs>/run-hook.sh <abs>/handoff-resume.mjs", "timeout": 15 } ] }
  ]
}
  1. 校验 JSON:用 JSON.parse 解析整个 settings 文件,确认其余键未丢。
  2. 实测触发:手动复现单个 hook —— echo '<payload json>' | /bin/bash -lc '<command>',
    再跑一轮真实会话确认 handoff 产出与注入都发生。
  3. 清理测试产物:删掉 hooks/state/ 与 handoffs/ 下的测试文件。

Decision Rules

  • 触发点只能选 Stop:它是唯一能强制模型继续的事件;注入点只能选 SessionStart:它的 stdout
    或 hookSpecificOutput.additionalContext 是唯一能进新会话上下文的位置。PreCompact 不能当
    handoff 触发器
    (stdout 只进压缩指令,exit 2 只给用户看消息)。
  • 阈值调整优先级:先看是不是被内置 50% pre-message 压缩截断 —— 开桌面端 Max Mode,
    或设 CODEBUDDY_PRE_MESSAGE_COMPACT_PCT=80;确认能到目标比例后,再调
    handoff.config.json 里的 handoff 阈值。
  • contextWindow 兜底顺序:handoff.config.json.contextWindow 留 null 时依次取
    settings.autoCompactWindow -> CODEBUDDY_AUTO_COMPACT_WINDOW -> 200000。
  • 需要确认事件名 / matcher 语义 / hook 入参 / 阈值常量 -> 读 references/runtime-facts.md。
  • 要写或改 hook 脚本本身 -> 读 references/hook-implementation.md。
  • hook 不触发 / 到不了阈值 / 搜不到字符串 -> 见 ## Troubleshooting。

Constraints

  • 改 ~/.workbuddy/settings.json 前先备份;改完必须 JSON.parse 校验,并确认其余键未丢。
  • 所有 hook 脚本的异常分支都必须 exit 0,否则会卡住对话。
  • 每 session 只触发一次:Stop 脚本要检查 stop_hook_active===true 直接 return,并用
    state/<sid>.fired 去重。
  • handoff 目录按 sha1(cwd).slice(0,12) 分项目,不要依赖 app 的 cwd-slug(不同版本大小写规则不一致)。
  • 脚本内不写 Unicode 制表/装饰字符(会乱码);中文可正常写。
  • 测完清理 hooks/state/ 与 handoffs/ 下的测试产物。
  • 不要用 PreCompact 做 handoff 触发;不要把 hook 的 stdout 当成能进用户可见消息的通道。

Priority

  1. 不卡住对话(hook 任何异常一律 exit 0)> "一定要触发 handoff"。
  2. 先解除原生 50% 压缩,再调 handoff 阈值 —— 否则阈值永远达不到。
  3. 防死循环(stop_hook_active 检查 + 每 session 一次)> 尽量多触发。

Stop Conditions

  • handoff 到不了阈值 -> 不要反复下调阈值;先确认是否被 50% 原生压缩截断、或用户没开 Max Mode。
  • grep app.asar 搜不到目标字符串 -> 不要反复 grep;改用
    npx @electron/asar extract <asar> <dir> 后再 grep。
  • 改完 settings 后 JSON.parse 失败 -> 立即还原备份,不要继续追加改动。

Verification

交付前逐项确认:

  • [ ] ~/.workbuddy/settings.json 已备份,且 JSON.parse 通过、其余键未丢。
  • [ ] 三个脚本就位且可执行;每个异常分支都 exit 0。
  • [ ] Stop 注册带 stop_hook_active 与 state/<sid>.fired 双重防死循环。
  • [ ] SessionStart 注册的 matcher 为 startup|clear,且 source==="compact" 时跳过。
  • [ ] 实测确认:达标时产出 handoff,新会话读到且只读一次。
  • [ ] hooks/state/ 与 handoffs/ 下的测试产物已清理。

Output

  • Outcome:一条可用的 handoff 门禁 —— 上下文达阈值时自动产出 handoff 文档,
    新会话(startup / clear)自动注入该文档继续干活。
  • Done when:## Verification 全部勾选,且用户能在真实会话里看到 handoff 产出与注入。
  • Evidence:settings 中新增的 hooks 段;handoffs/ 下带 <file>.consumed 标记的文件;
    state/<sid>.fired 标记;一轮实测会话的前后对比。

References

按需加载,不要预先全读:

  • references/runtime-facts.md — 需要确认 hook 事件名、matcher 语义、hook 入参、transcript 路径
    或内置压缩阈值常量时读。
  • references/hook-implementation.md — 要写或修改 handoff-trigger.mjs / handoff-resume.mjs /
    run-hook.sh 时读。

Troubleshooting

  • hook 不触发:确认 ~/.workbuddy/settings.json JSON 合法、命令用绝对路径、脚本可执行。
    手动复现:echo '<payload json>' | /bin/bash -lc '<command>'。
  • 到不了阈值:几乎一定是被内置 50% pre-message 压缩截断 —— 开 Max Mode,或设
    CODEBUDDY_PRE_MESSAGE_COMPACT_PCT=80,或降低 handoff 阈值。
  • grep app.asar 搜不到字符串:284MB 大文件直接 grep 会漏。用
    npx @electron/asar extract <asar> <dir>(3-4s,约 800MB)解包后再 grep。

常见问题

5 问
答案由本站依据条目字段整理
Workbuddy Context Handoff怎么安装?

没有现成安装命令:按安装说明或仓库 README,把 SKILL.md 放进客户端的 skills 目录(一般一个技能一个文件夹)。

Workbuddy Context Handoff支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

Workbuddy Context Handoff权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

Workbuddy Context Handoff收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

Workbuddy Context Handoff用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。