mcpField
W
wheypoint

wheypoint

github.com/paulnsorensenAgent 工作流19633 次安装6 天前更新
代码仓库

关于 wheypoint

wheypoint 是一种检查点技能,用于记录新 Agent 接手工作所需的决策、约束、未决问题和背景。运行时会验证结构化意图,并写入带有工件链接和版本跟踪的持久记录。

主要功能

  1. 01记录决策、指令与待解决问题
  2. 02写入前验证检查点意图
  3. 03跟踪工件链接和版本
  4. 04列出并解析工作记录
  5. 05生成交接投影

适用场景

  1. 01在 Agent 会话结束时保留上下文
  2. 02对话压缩后恢复工作
  3. 03记录阶段检查点而不结束任务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/paulnsorensen/easy-cheese --skill wheypoint

安装后在 Claude Code 中输入/wheypoint确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

wedge.toml
references/
commands.md
delta-contract.md
intent-contract.md
legacy-notes.md
parallel-handoffs.md
provenance-fields.md
work-graph.md

详细介绍

/wheypoint

/wheypoint 记录新 Agent 继续工作所需的状态。

适用于文化交流环节、不带阶段 slug 的工作,以及阶段的 Checkpoint & stop 选项。 阶段检查点是独立的非终态 Wheypoint 记录,不是终态阶段产物。 达到硬性限制的工作者应返回观察结果;由父级而非工作者执行检查点持久化。

输入

  • 对话是主要输入。
  • 可选参数只影响方向说明;焦点不会移除任何决定、问题或指令。

运行时命令

通过此技能的归档运行每条命令,使用其解析后的已安装 bundle 路径;参见 ../cheese/references/harness-portability.md。 当使用方仓库缺少 skills/ 时,执行前先解析已安装的 bundle 路径;切勿假设 easy-cheese 检出目录或当前工作目录。

python3 skills/wheypoint/scripts/wheypoint.pyz turns [--session <id> | --transcript <path>]
python3 skills/wheypoint/scripts/wheypoint.pyz show <work-id> [--project <key>]
python3 skills/wheypoint/scripts/wheypoint.pyz validate [intent.json] [--base <revision_id>]
python3 skills/wheypoint/scripts/wheypoint.pyz checkpoint [intent.json] [--base <revision_id>]
python3 skills/wheypoint/scripts/wheypoint.pyz checkpoint <work-id> [--base <revision_id>] --question "<q>" --gates --rationale "<why>" --decision "<d>" --directive "<d>" --quote "<words>" --operator-directive "<style>" --operator-quote "<words>" [--owner <who> --when <trigger>] --link <ref> --kind <edge-kind> [--covers <id>]...
python3 skills/wheypoint/scripts/wheypoint.pyz schema checkpoint-intent
python3 skills/wheypoint/scripts/wheypoint.pyz resolve <absolute-path | work-id | slug> [--project <key>] [--workspace-root <checkout>]
python3 skills/wheypoint/scripts/wheypoint.pyz list [--scope project | machine] [--grep <text>]... [--status <s>]... [--next <move>]... [--project <key>]... [--entry-kind <k>]... [--entry-state <s>]... [--gated | --no-gated] [--edge-kind <k>]... [--linked-to <ref>]... [--forked-from <work-id>]... [--owner <who>]...
python3 skills/wheypoint/scripts/wheypoint.pyz log <work-id> [--project <key>]
python3 skills/wheypoint/scripts/wheypoint.pyz fork <parent> <child> --orientation "<child title>" [--next <move> [--artifact <a>]]
python3 skills/wheypoint/scripts/wheypoint.pyz export <slug | work-id | path> [--out <file>] [--include-operator] [--include-local]
python3 skills/wheypoint/scripts/wheypoint.pyz import <bundle.json> [--as <slug>] [--note-dir <dir> | --no-note]
python3 skills/wheypoint/scripts/wheypoint.pyz handoff render | parse | dispatch

在一次 list 调用中重复使用 --grep、--status、--next 或 --project,以搜索多个值;匹配同一标志任意值的结果都会保留,不同标志之间按 AND 组合;切勿针对每个词循环调用一次 list;在 Git 检出目录之外,不带 --scope 的 list 会搜索机器范围,并报告 scope-fallback: machine,显式指定 --scope 时则保留其含义。 fork 只写入一条带有一个 forked_from 边的子代创始记录;import 只写入一条导入记录,而 bundle_digest 覆盖规范 bundle,本身不包含任何字段;references/work-graph.md 介绍了 refs、边类型、bundle 和 list 图筛选器。 使用 checkpoint --link 创建链接;resolve 会验证产物链接、有依据的路径、Git 对象和覆盖范围;没有精确匹配的 slug 会先解析为唯一前缀,再解析为唯一子串;若有多个匹配项,则返回 ambiguous 并列出所有候选项。 resolve、list、log、show、schema 和 turns 只读;直接调用会返回输出,并在写入检查点前停止。 /cheese --continue 使用 resolve,且绝不会调用另一个归档;斜杠命令是宿主的呈现方式,并非控制模型;外部机器命中项需要归属检出目录;请遵循继续协议。 父级将持久化任务委派给此能力,作为一项结构化检查点任务,并在执行 checkpoint 前运行 validate;工作者达到硬性限制时绝不调用这两个命令。 阶段技能使用各自的 wheypoint-resolve --ref <slug> 命令进行解析;关于其结果、working_context 和发现,请参阅references/delta-contract.md。

流程

  1. 阅读用户的话。 运行 turns,并查看每一轮用户发言。
  2. 将每一轮对应到一个条目,或用一行说明为何未记录该轮发言。
  3. 重新读取。 运行 show 或 resolve,查询工作 ID 并记下其 revision_id;首次检查点无需基准版本。
  4. 对现有记录的每次写入都需要将该 revision_id 作为 --base(或 base_revision_id)传入。 压缩后,写入前请重新读取。
  5. 写入意图。 遵循 references/intent-contract.md。
  6. 将用户明确陈述的每项约束或偏好写入 directive 条目,并附上逐字引用的 quote。
  7. 将每项选择写入 decision 条目,并说明 rationale。
  8. 将每个未解决事项写入 question 条目;对于阻塞性问题,提供 rationale。
  9. 将搁置的分歧选项记录为带有 --gates 的 question,并在 --rationale 中列出选项和你此前倾向的选择。
  10. 将冷读者需要的报告写入 notes。
  11. 将路径和 URL 放入 artifact_links 和 working_context,而不是写入其内容。
  12. 验证。 运行 validate --base <revision_id>,并修复所有列出的问题。
  13. 创建检查点。 运行 checkpoint --base <revision_id>。 如果收到 base-revision-required 或 stale-parent 拒绝,表示需要重新读取、重新应用更改,然后再写入。
  14. 报告。 说明结果报告的持久性,以及恢复工作所需的命令。

运行时强制执行的规则

运行时会拒绝意图,而不是丢弃数据。

  • 遇到未知键时会拒绝,并指出其路径。
  • 如果首次创建检查点时没有任何条目和备注,会拒绝。
  • 如果 next: affinage 未在 artifact 中提供 PR 引用,会拒绝。
  • 如果 next: cook 未提供 artifact,会拒绝。
  • 如果文本符合凭据模式,会拒绝并指出对应字段。
  • 如果 artifact_links 或 remove_artifact_links 列表为空,会拒绝。
  • 根据 交接契约,运行时会从设有门槛的条目推导 status:;作者不得设置此字段。
  • 如果存在 baseline 键,运行时会拒绝,而不会将其丢弃;Cook 基线应保留在 Cook 交接内容中。
  • delta 新增的每个阻塞性问题都必须有 rationale。
  • 所有标识符、摘要和修订版本均由运行时生成。
  • 运行时会拒绝 Agent 编写的 fork 转换,以及 delta 中的 forked_from 边。
  • 如果 notes 超过 6000 个字符,运行时会拒绝。
  • 如果 working_context 或工件链接中有裸 path:line,且 HEAD 中包含该文件,则运行时会将其固定为 path:line@<short HEAD sha>;否则会发出 unpinned-line-ref 警告(没有检出或提交,或文件未跟踪、已忽略或不存在)。
  • 运行时会在 ## Local references 下列出每个本地引用(xdg: 引用、检出目录之外的绝对路径,或 Git 忽略的路径)。
  • 如果决策发生变化而 notes 保持不变,运行时会发出 stale-notes 警告,在 ## Notes 顶部标记该差异,并在 ## Superseded 下列出被 checkpoint --supersede <old> [--by <new>] --rationale <why> 替换的条目。

修复被拒绝的意图,然后再次运行 checkpoint。

交接标识

checkpoint 命令会在生成的投影顶部写入共享前导内容;所有使用方都会通过 parse_handoff_slug() 读取该内容。

status: <canonical status field>
next: mold | cook | press | age | cure | affinage | briesearch | culture | hold | tasks | done
artifact: <path, or PR#<n> / URL when next is affinage, else empty>
<one-line orientation: where the session is and what is mid-flight>

当 next: tasks 时,投影会在 artifact: 后添加一行带有 mode: parallel 的键值行;方向说明后的键值块包含 Wheypoint 固定信息。 投影正文会显示门槛、未解决条目、决策、指令、备注、上下文、工件、任务,以及最后的 ## Identifiers 部分。 投影标题为 # Wheypoint handoff。 投影不是权威来源;切勿编辑它,也不要手动从中恢复工作。

next: 值

每个 next: 值的含义见 references/intent-contract.md;briesearch 和 culture 是只读启动项,而 tasks 遵循 references/parallel-handoffs.md。 缺少 next: 会导致交接格式错误;后续没有操作时,请使用 hold。 请根据未解决的问题推导 next: 和 status:,而不是根据预期的成功结果。 对于每个人工决策,请使用 status: gated:;恢复工作的 Agent 会先通过共享的交接门控询问,然后再进行派发。 手写笔记、其旧版值及其来源字段见 references/legacy-notes.md 和 references/provenance-fields.md。

规则

  • 切勿通过 Git 提交、推送或发布来提高持久性。
  • 切勿手动编写笔记、编辑生成的投影,也切勿包含机密值。
  • 通过路径或 URL 引用每个工件;不要复制其内容。
  • 使用完整句子;每行写一个句子。

交接

结尾须包含方向说明和此链接:Wheypoint dropped: [.cheese/notes/<slug>.md](<absolute-note-path>)。

评论

支持 Markdown