wheypoint
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese/wheypoint
/wheypoint
/wheypoint/wheypoint/wheypoint/wheypointInputs
输入
- The conversation so far (the primary input).
- Optional argument: a description of what the next session will focus on. When present, treat it as the lens and tailor the document to it. Drop state that does not serve that focus to a one-line pointer.
- Optional verb : merge two existing handoff notes into one. Reads both notes from
--join <slugA> <slugB>and writes a single merged note whose.cheese/notes/lists both slugs.parents: - Optional verb : fork the current thread into two resumable tracks. Writes two child notes, each with
--splitand a distinct slug.parents: [<current-slug>]
text
/wheypoint -> one note with session/git/created auto-filled
/wheypoint --join A B -> one merged note, parents: [A, B]
/wheypoint --split -> two child notes, each parents: [<current>]- 截至目前的对话内容(主要输入)。
- 可选参数:描述下一次会话的重点方向。如果提供该参数,需以此为核心调整文档内容,将与该重点无关的状态简化为一行指向性说明。
- 可选动词 :将两份已有的交接笔记合并为一份。从
--join <slugA> <slugB>中读取两份笔记,生成一份合并后的笔记,其.cheese/notes/字段会列出两个slug。parents: - 可选动词 :将当前线程拆分为两个可继续推进的分支。生成两份子笔记,每份的
--split字段都包含当前slug,且各自拥有唯一的slug。parents: [<current-slug>]
text
/wheypoint -> 生成一份自动填充session/git/created字段的笔记
/wheypoint --join A B -> 生成一份合并笔记,parents: [A, B]
/wheypoint --split -> 生成两份子笔记,每份的parents: [<current>]Flow
流程
- Derive a slug from the task (e.g. ). Reuse an existing slug if this session already owns one under
auth-retry-backoff..cheese/ - Inventory what already exists. List the artifacts, specs, PRs, issues, commits, and diffs this session produced or touched. These get referenced, never re-summarised.
.cheese/ - Write the handoff document to with the slug header (
.cheese/notes/<slug>.md) and body (## Handoff slug) below. When a focus argument was given, apply it as the lens throughout: emphasise state and decisions that serve the focus, and compress everything else to a one-line pointer.## Document - Redact secrets on the way out ().
## Redaction - Point at resumption. End by telling the user how to resume with from the original repo, and include an absolute clickable path to the handoff note so the user can find it from any working directory.
/cheese --continue <slug>
- 从任务中生成slug(例如 )。如果当前会话已在
auth-retry-backoff下拥有对应的slug,则重复使用该slug。.cheese/ - 盘点已有内容。列出当前会话生成或涉及的 下的工件、规格、PR、问题、提交记录和差异。这些内容仅需引用,无需重新总结。
.cheese/ - 编写交接文档到 ,文件顶部包含slug头(
.cheese/notes/<slug>.md),下方是正文(## Handoff slug)。如果提供了重点参数,需全程以此为核心:强调服务于该重点的状态和决策,将其他内容压缩为一行指向性说明。## Document - 脱敏处理():移除敏感信息。
## Redaction - 说明恢复方式。最后告知用户如何在原始仓库中使用 恢复工作,并提供交接笔记的绝对可点击路径,方便用户在任何工作目录下找到该笔记。
/cheese --continue <slug>
--join <slugA> <slugB>
--join <slugA> <slugB>--join <slugA> <slugB>
--join <slugA> <slugB>Merge two interrupted threads into one resumable note.
- Read both source notes from and
.cheese/notes/<slugA>.md..cheese/notes/<slugB>.md - Derive a merged slug that names the joined effort.
- Write ONE note to with
.cheese/notes/<merged-slug>.mdand the usual auto-filled provenance (parents: [<slugA>, <slugB>]/session:/git:from the live session).created: - In , consolidate both sources' Goal / State / Key decisions by reference, not re-paste (per
## Document): point at each source note by path and capture only the merged picture and any conflicts to reconcile.## Do not duplicate - Point at resumption as in the default flow.
将两个中断的线程合并为一份可继续推进的笔记。
- 从 和
.cheese/notes/<slugA>.md中读取两份源笔记。.cheese/notes/<slugB>.md - 生成一个能体现合并工作内容的slug。
- 向 写入一份笔记,包含
.cheese/notes/<merged-slug>.md字段,以及常规自动填充的溯源信息(来自当前会话的parents: [<slugA>, <slugB>]/session:/git:)。created: - 在 部分,通过引用而非重新粘贴的方式整合两份源笔记的目标/状态/关键决策(遵循
## Document规则):通过路径指向每份源笔记,仅记录合并后的整体情况以及需要协调的冲突。## Do not duplicate - 按照默认流程说明恢复方式。
--split
--split--split
--splitFork the current thread into two parallel tracks.
- Take the current thread's slug as the parent (derive it as in step 1 of the default flow).
- Choose two distinct child slugs, one per track.
- Write TWO notes, and
.cheese/notes/<child-a>.md, each with.cheese/notes/<child-b>.md, its own auto-filled provenance, and aparents: [<current-slug>]scoped to that track's slice of the work.## Document - Point at resumption for each child so both tracks can be resumed independently.
将当前线程拆分为两个并行分支。
- 将当前线程的slug作为父slug(按照默认流程的步骤1生成)。
- 为每个分支选择唯一的子slug。
- 生成两份笔记:和
.cheese/notes/<child-a>.md,每份都包含.cheese/notes/<child-b>.md字段、各自自动填充的溯源信息,以及针对该分支工作内容的parents: [<current-slug>]部分。## Document - 为每个子分支说明恢复方式,以便两个分支可以独立推进。
Handoff slug
Handoff slug
Prepend the standard resumable slug to the top of the file so can route from it without reading the whole document:
/cheese --continuemarkdown
status: ok | gated: <one-line decision> | halt: <one-line reason>
next: mold | cook | press | age | cure | affinage | briesearch | culture | hold | tasks | done
mode: single | parallel
artifact: <path-to-richer-report, or PR ref (PR#<n> / URL) when next: affinage, else none>
session: <harness>:<session-id> # optional; auto-filled provenance
git: <branch>@<short-sha> # optional; auto-filled provenance
created: <UTC ISO-8601> # optional; auto-filled provenance
parents: [<slug>, ...] # optional; lineage (join => 2+, split-child => 1)
baseline: none | <block — carries a recorded baseline block forward from an upstream cook/press/cure handoff; see ../cook/references/quality-gates.md>
<one-line orientation: where the session is and what is mid-flight>mode:mode: singlemode: singlenext:done/cheese --continue <slug>.cheese/notes/<slug>.mdnext:/cheese --continue <absolute-note-path>next: affinagePR#<n>artifact:/affinage <pr>When the checkpointed session carries a recorded block, propagate it verbatim to the child note: it is settled state, not something the resumed phase should re-ask about or re-halt on. carries the block unchanged to each child note; merges the parents' baseline entries into their union — a settled-state merge that never re-opens a recorded entry. See .
baseline:--split--join../cook/references/quality-gates.md在文件顶部添加标准的可恢复slug,以便 命令无需读取整个文档即可定位:
/cheese --continuemarkdown
status: ok | gated: <单行决策内容> | halt: <单行原因>
next: mold | cook | press | age | cure | affinage | briesearch | culture | hold | tasks | done
mode: single | parallel
artifact: <更详细报告的路径,或当next: affinage时的PR引用(PR#<n> / URL),否则填none>
session: <harness>:<session-id> # 可选;自动填充的溯源信息
git: <branch>@<short-sha> # 可选;自动填充的溯源信息
created: <UTC ISO-8601> # 可选;自动填充的溯源信息
parents: [<slug>, ...] # 可选; lineage(join操作对应2个及以上,split子分支对应1个)
baseline: none | <block — 从上游cook/press/cure交接中携带已记录的基线块;详见../cook/references/quality-gates.md>
<单行定位说明:当前会话进度及正在处理的内容>mode:mode: singlemode: singlenext:done/cheese --continue <slug>.cheese/notes/<slug>.mdnext:/cheese --continue <absolute-note-path>next: affinageartifact:PR#<n>/affinage <pr>如果被检查点标记的会话携带已记录的 块,需将其原封不动地传递给子笔记:这是已确定的状态,恢复阶段无需重新询问或暂停。 操作会将该块无变化地传递给每个子笔记; 操作会将父笔记的基线条目合并为它们的并集——这是已确定状态的合并,不会重新打开已记录的条目。详见 。
baseline:--split--join../cook/references/quality-gates.mdProvenance fields
溯源字段
Four optional provenance fields sit between and the orientation line. Auto-fill each one from the live session; never take a user-supplied value. All four are optional and additive: a note carrying none of them is valid, and every consumer treats a pre-provenance note (none of these keys) as valid. Placement rule: the orientation line stays the first non-key line, so it must follow whichever of these fields are present.
artifact:- — the current session's harness and id, read from the per-harness source map:
session: <harness>:<session-id>- claude — the newest in the encoded-cwd projects dir (
*.jsonl); its basename (minus~/.claude/projects/<encoded-cwd>/) is the session id..jsonl - codex — the field in the rollout meta line of the active rollout log.
payload.cwd - opencode — the matching row in the table.
session - When the harness is unknown or no log is accessible, omit the field. the newest-mtime claude heuristic can bind the wrong
<speculative>when several live sessions share one cwd; the field is optional so a wrong bind is hand-correctable.*.jsonl
- claude — the newest
- — the branch and short commit at capture time. Use any callable, read-only git inspection capability the active harness exposes. CLI transports may run
git: <branch>@<short-sha>for the branch andgit status --short --branchfor the short SHA. Omit the field when git inspection is unavailable, outside a git repository, or either value cannot be determined.git rev-parse --short HEAD - — the capture timestamp in UTC ISO-8601 (e.g.
created: <UTC ISO-8601>).2026-07-09T14:32:00Z - — lineage. Empty or absent for a fresh single-thread note.
parents: [<slug>, ...]sets two or more source slugs; each--joinchild sets exactly the current slug.--split
在 和定位说明行之间有四个可选的溯源字段。这些字段需从当前会话自动填充,切勿使用用户提供的值。四个字段均为可选且可叠加:不包含这些字段的笔记依然有效,所有处理程序都会将无溯源字段的笔记视为有效。放置规则:定位说明行必须是第一个非键值行,因此它必须跟在所有已填充的溯源字段之后。
artifact:- — 当前会话的harness和id,从每个harness的源映射中读取:
session: <harness>:<session-id>- claude — 编码后的工作目录项目目录()中最新的
~/.claude/projects/<encoded-cwd>/文件;其文件名(去掉*.jsonl)即为会话id。.jsonl - codex — 活跃部署日志中rollout元数据行的 字段。
payload.cwd - opencode — 表中的匹配行。
session - 当harness未知或无法访问日志时,省略该字段。最新修改时间的claude启发式方法在多个活跃会话共享一个工作目录时可能绑定错误的
<speculative>文件;该字段为可选,因此错误绑定可手动修正。*.jsonl
- claude — 编码后的工作目录项目目录(
- — 捕获时的分支和短提交哈希。使用当前harness提供的任何可调用、只读的git检查功能。CLI传输可运行
git: <branch>@<short-sha>获取分支,运行git status --short --branch获取短SHA。当无法进行git检查、不在git仓库中或无法确定任一值时,省略该字段。git rev-parse --short HEAD - — 捕获时间戳,采用UTC ISO-8601格式(例如
created: <UTC ISO-8601>)。2026-07-09T14:32:00Z - — lineage。全新单线程笔记的该字段为空或省略。
parents: [<slug>, ...]操作会设置两个或更多源slug;每个--join子分支仅设置当前slug。--split
status:
values
status:status:
取值
status:- — the next step is unblocked;
okauto-dispatches/cheese --continue.next: - — work is fine, but the next step is blocked on a human decision. Name the decision in one line. On
gated: <one-line decision>, the reader surfaces the decision plus the body's open-questions/blockers and asks which direction (research / decide / build); it dispatches nothing until the user picks. Never collapse a gate into a bare actionable/cheese --continuewithnext:— that is the misfire this contract exists to stop. Any open blocker in the body mandatesstatus: ok, notstatus: gated:.status: ok - — a blocker stopped the work mid-flight; surface the reason, then dispatch the runnable
halt: <one-line reason>(unchanged).next:
- — 下一步工作无阻塞;
ok会自动调度/cheese --continue指定的技能。next: - — 工作进展正常,但下一步需等待人工决策。用一行文字说明决策内容。在
gated: <单行决策内容>时,执行者会展示该决策内容以及正文中的未解决问题/阻塞,并询问方向(调研/决策/构建);在用户做出选择前不会调度任何操作。切勿将阻塞的情况简化为/cheese --continue并设置可执行的status: ok——这正是本规则要避免的错误。正文中任何未解决的阻塞都必须设置next:,而非status: gated:。status: ok - — 阻塞导致工作中途停止;展示原因,然后调度
halt: <单行原因>指定的可执行技能(保持不变)。next:
next:
values and semantics
next:next:
取值及语义
next:Single-value is one of the pipeline phases (), a read-only kickoff (), , (with ), or .
next:mold | cook | press | age | cure | affinagebriesearch | cultureholdtasksmode: paralleldone- /
mold/cook/press/age— the pipeline phases. Which one fits the session state (and the mid-phase resume case, e.g.cureinterrupted) is defined by the/cookmapping table below, which owns these semantics.## Suggested skills - — PR has review comments or failing CI. Record the PR reference in
affinage(artifact:or URL) so the resume dispatchesPR#<n>explicitly./affinage <pr> - — read-only, low-risk next moves. Under
briesearch | culture,status: okauto-dispatches them directly (frictionless research/think kickoff), deriving any dispatch argument (e.g./cheese --continue's question) from the orientation line. A move that needs a human decision belongs inbriesearch.status: gated: - — restore orientation and wait for instruction; dispatch nothing. For compacting or stringing context along when no action is implied. Distinct from
hold(work finished, record only).done - — work genuinely finished; handoff is a record, not a baton. Use only for true terminal completion.
done - A missing is a malformed handoff.
next:flags it (/cheese --continue) rather than guessing or defaulting. Declare intent explicitly —malformed handoff: next: requiredis the value for "no action."hold
单值 可以是流水线阶段()、只读启动技能()、、(搭配 )或 。
next:mold | cook | press | age | cure | affinagebriesearch | cultureholdtasksmode: paralleldone- /
mold/cook/press/age— 流水线阶段。根据会话状态(以及阶段中途恢复的情况,例如cure被中断)选择合适的阶段,具体由下文的/cook映射表定义。## Suggested skills - — PR存在评审意见或CI失败。在
affinage字段中记录PR引用(artifact:或URL),以便恢复时显式调度PR#<n>。/affinage <pr> - — 只读、低风险的下一步操作。在
briesearch | culture时,status: ok会直接自动调度这些技能(无摩擦的调研/思考启动),从定位说明行推导调度参数(例如/cheese --continue的问题)。需要人工决策的操作应设置为briesearch。status: gated: - — 恢复定位并等待指令;不调度任何操作。用于压缩或延续上下文但无需执行操作的场景。与
hold(工作完成,仅作记录)不同。done - — 工作真正完成;交接仅作为记录而非接力棒。仅当工作确实完成时使用。
done - 缺失 的交接文档是格式错误的。
next:会标记错误(/cheese --continue),而非猜测或使用默认值。需明确声明意图——malformed handoff: next: required是“无操作”的取值。hold
next:
list form
next:next:
列表形式
next:To kick off several read-only follow-ups from one handoff, may be a list with a required :
next:order:markdown
next: [briesearch "slug1", briesearch "slug2", culture "slug3"]
order: parallel | sequential- Each item is .
<skill> "<arg>"is required whenorder:is a list.next: - —
order: parallelfans out concurrent read agents, one per item, in the same turn./cheese --continue - — items run in listed order.
order: sequential - The inline list is restricted to read-only skills (). Parallel write efforts still require the heavyweight
briesearch | culture+mode: parallelblock with worktree/branch isolation below; sequential pipeline chaining stays the job oftasks:/--auto's fan pathway./cook
For multiple independent next moves, use , set , add a block, and add a list immediately after the orientation line. Each task must carry its exact ; commands may name different skills. Parallel write tasks must never share a checkout. Choose one portable isolation strategy:
mode: parallelnext: tasksparallel:tasks:command: | Use when | Required fields |
|---|---|---|
| The user already has durable bench checkouts | each write task has distinct |
| No checkouts exist yet | |
| The host can create isolated threads/worktrees | each write task has |
Example:
markdown
status: ok
next: tasks
mode: parallel
artifact: none
KIP-76 and KIP-77 are ready to run as independent PR efforts.
parallel:
isolation: git-worktree
worktree_strategy: existing
tasks:
- slug: kip-77-ai-test-server
intent: cook
repo: /Users/marcus/Documents/multiplier
worktree: /Users/marcus/Documents/multiplier-01
branch: marcus/kip-77-ai-test-server
branch_from: origin/main
command: /cook .cheese/specs/kip-77-ai-test-server.md
- slug: kip-76-ai-service-spin-up
intent: cook
repo: /Users/marcus/Documents/multiplier
worktree: /Users/marcus/Documents/multiplier-02
branch: marcus/kip-76-ai-service-spin-up
branch_from: origin/main
command: /cook .cheese/specs/kip-76-ai-service-spin-up.mdFor a generic setup without existing benches, use and add ; derives one checkout per task from the task slug.
worktree_strategy: createworktree_root: ../.cheese-worktrees/cheese --continue要从一份交接文档启动多个只读后续操作, 可以是一个列表,且必须搭配 字段:
next:order:markdown
next: [briesearch "slug1", briesearch "slug2", culture "slug3"]
order: parallel | sequential- 每个条目格式为 。当
<skill> "<arg>"为列表时,next:字段为必填。order: - —
order: parallel会在同一轮调度中并行启动多个只读Agent,每个条目对应一个。/cheese --continue - — 条目按列出的顺序依次运行。
order: sequential - 内联列表仅适用于只读技能()。并行写入操作仍需使用重量级的
briesearch | culture+mode: parallel块,并搭配下文的工作树/分支隔离策略;流水线的顺序链式调用仍由tasks:/--auto的分支路径处理。/cook
对于多个独立的下一步操作,使用 ,设置 ,添加 块,并在定位说明行后添加 列表。每个任务必须包含确切的 ;命令可指定不同的技能。并行写入任务绝不能共享同一个检出目录。选择以下一种可移植的隔离策略:
mode: parallelnext: tasksparallel:tasks:command: | 使用场景 | 必填字段 |
|---|---|---|
| 用户已拥有持久的基准检出目录 | 每个写入任务需包含不同的 |
| 尚无检出目录 | |
| 主机可创建隔离线程/工作树 | 每个写入任务的 |
示例:
markdown
status: ok
next: tasks
mode: parallel
artifact: none
KIP-76和KIP-77已准备好作为独立PR推进。
parallel:
isolation: git-worktree
worktree_strategy: existing
tasks:
- slug: kip-77-ai-test-server
intent: cook
repo: /Users/marcus/Documents/multiplier
worktree: /Users/marcus/Documents/multiplier-01
branch: marcus/kip-77-ai-test-server
branch_from: origin/main
command: /cook .cheese/specs/kip-77-ai-test-server.md
- slug: kip-76-ai-service-spin-up
intent: cook
repo: /Users/marcus/Documents/multiplier
worktree: /Users/marcus/Documents/multiplier-02
branch: marcus/kip-76-ai-service-spin-up
branch_from: origin/main
command: /cook .cheese/specs/kip-76-ai-service-spin-up.md对于没有现有基准目录的通用设置,使用 并添加 ; 会根据任务slug为每个任务生成一个检出目录。
worktree_strategy: createworktree_root: ../.cheese-worktrees/cheese --continueDocument
Document
After the slug, write a section. Open with the answer; keep every claim readable to someone who has not seen the conversation. Cover, in order, only the parts that carry signal:
## Document- Goal. The one or two sentences that say what we are trying to achieve.
- State. What is done and verified, what is in-flight, what is untouched. Be honest about partial work; a half-finished step described accurately beats a tidy lie (Rule 9).
- Key decisions and constraints. The choices a fresh agent would otherwise re-litigate, each with a calibrated tag (/
`<certain>`/`<speculating>`) and a one-line why.`<don't know>` - Open questions and blockers. What is unresolved and what it is waiting on.
- Artifacts. A list of paths and URLs, not their contents. See .
## Do not duplicate - Suggested skills. The concrete next moves. See for the state-to-skill mapping.
## Suggested skills - Environment. Branch, dirty files, anything non-obvious about the working state. Redacted.
Follow the house style in : no em-dashes, complete sentences in prose, no throat-clearing, calibrated tags on the claim.
../cheese/references/formatting.md在slug之后,编写 部分。开门见山;确保每一项内容对未看过对话的人来说都清晰易懂。按顺序仅保留有价值的内容:
## Document- 目标:用一到两句话说明我们要达成的目标。
- 状态:已完成并验证的内容、正在处理的内容、未涉及的内容。如实描述部分完成的工作;准确描述未完成的步骤比虚假的整洁更重要(规则9)。
- 关键决策与约束:新Agent可能会重新讨论的选择,每个选择都带有校准标签(/
`<certain>`/`<speculating>`)和一行说明原因。`<don't know>` - 未解决问题与阻塞:尚未解决的问题以及等待的条件。
- 工件:路径和URL列表,而非内容。遵循 规则。
## Do not duplicate - 建议技能:具体的下一步操作。详见 的状态到技能映射表。
## Suggested skills - 环境:分支、未提交文件、工作状态中任何不明显的信息。已脱敏。
遵循 中的格式规范:不使用破折号,散文使用完整句子,不写冗余铺垫,为声明添加校准标签。
../cheese/references/formatting.mdSuggested skills
Suggested skills
Derive and from the body's blockers, not from optimism. See for the gate rule.
next:status:### status: valuesPick the next move from where the session actually is, name it as an easy-cheese skill with its argument, and write the same target into the slug's field. Suggest the single best next step, plus the step after it when the path is obvious. When the session has two or more independent tracks that can proceed without sharing branch state, write , set , and put each exact skill invocation under instead of collapsing them into one sequential next step. For several read-only follow-ups, use the inline list with instead. The map:
next:mode: parallelnext: taskstasks:next:order:| Where the session is | Suggest | |
|---|---|---|
| Fuzzy idea, no approved spec yet | | |
| Research wanted before deciding or building | | |
| Wants to think a problem through, no writes | | |
| Next step blocked on a human decision | surface the decision, ask direction | — (set |
| Compacting or stringing along, no action implied | restore orientation, wait | |
| Approved spec, not yet implemented | | |
| Code written, not yet hardened or reviewed | | |
| Implementation done, review wanted now | | |
| Review findings in hand, fixes not applied | | |
| PR has review comments or failing CI | | |
| Hard bug still un-diagnosed | surface the blocker; invoke | — (set |
| Work genuinely finished | record only, no baton | |
When the session sits mid-phase (e.g. was interrupted), suggest re-entering that same phase with the slug. Tailor to the optional focus argument when the user gave one: it overrides the table if the next session is meant to do something other than advance the pipeline.
/cook根据正文中的阻塞情况推导 和 ,而非基于乐观预期。详见 的阻塞规则。
next:status:### status: values根据会话的实际进度选择下一步操作,将其命名为easy-cheese技能并带上参数,同时将相同的目标写入slug的 字段。建议单个最佳下一步操作,当路径明确时可加上再下一步的操作。当会话有两个或更多独立分支且无需共享分支状态即可推进时,设置 ,,并将每个确切的技能调用放在 下,而非合并为一个顺序的下一步操作。对于多个只读后续操作,使用带 的内联 列表而非其他方式。映射表:
next:mode: parallelnext: taskstasks:order:next:| 会话进度 | 建议操作 | |
|---|---|---|
| 模糊想法,尚无获批规格 | | |
| 决策或构建前需要调研 | | |
| 想要深入思考问题,无需写入操作 | | |
| 下一步需等待人工决策 | 展示决策内容,询问方向 | —(设置 |
| 压缩或延续上下文,无需执行操作 | 恢复定位并等待 | |
| 已获批规格,尚未实现 | | |
| 代码已编写,尚未加固或评审 | | |
| 实现完成,需要评审 | | |
| 已收到评审结果,尚未修复 | | |
| PR存在评审意见或CI失败 | | |
| 疑难问题尚未诊断 | 展示阻塞;准备就绪后调用 | —(设置 |
| 工作真正完成 | 仅作记录,无需接力 | |
当会话处于阶段中途(例如 被中断),建议使用该slug重新进入同一阶段。如果用户提供了可选的重点参数,需根据该参数调整:如果下一次会话的目标不是推进流水线,则该参数优先级高于映射表。
/cookRequired body sections by state
不同状态下的必填正文部分
The opening line (" captures just enough state for a cold reader to resume") sets the default: compress everything that does not serve the resume. This table names the one exception and pins the minimum sections each / combination requires, so compression never eats the state a resume actually needs.
/wheypoint## Documentstatus:next:| state | required Document sections |
|---|---|
| |
| agenda + open-thread state |
| findings artifact ref |
| spec/slug pointers per existing conventions |
| orientation only |
status: gated:## Decision dossierfile:line../cheese/references/ask-user-question.md开头的句子(“ captures just enough state for a cold reader to resume”)设定了默认规则:压缩所有对恢复工作无用的内容。下表列出了一个例外情况,并明确了每种 / 组合所需的最小 部分,确保压缩不会丢失恢复工作所需的状态信息。
/wheypointstatus:next:## Document| 状态 | 必填Document部分 |
|---|---|
| |
| 议程 + 未完成线程状态 |
| 结果工件引用 |
| 遵循现有规范的规格/slug指针 |
| 仅定位说明 |
status: gated:## Decision dossierfile:line../cheese/references/ask-user-question.mdDo not duplicate
Do not duplicate
The point of a handoff is to be short enough to read cold. Anything already captured in a durable artifact gets a reference, not a copy:
- Specs, findings reports, research reports under — link by path.
.cheese/ - PRs, issues, commits, diffs — link by URL or sha.
- Plans, ADRs, design docs — link by path or URL.
Summarise an artifact only when the summary is genuinely shorter than its pointer. Re-pasting a diff or a spec into the handoff is the failure mode this skill exists to avoid.
交接文档的核心是简洁,便于不了解前情的人快速阅读。任何已记录在持久工件中的内容只需引用,无需复制:
- 下的规格、结果报告、调研报告——按路径链接。
.cheese/ - PR、问题、提交记录、差异——按URL或哈希链接。
- 计划、ADR、设计文档——按路径或URL链接。
仅当摘要确实比引用更短时才总结工件内容。将差异或规格重新粘贴到交接文档中是本技能要避免的失败模式。
Redaction
Redaction
Strip anything sensitive before writing: API keys, tokens, passwords, connection strings, and personally identifiable information. If a secret is required for the next session, reference where it lives (env var name, secret manager path), never its value.
写入文档前需移除所有敏感信息:API密钥、令牌、密码、连接字符串和个人身份信息。如果下一次会话需要使用密钥,只需引用其存储位置(环境变量名称、密钥管理器路径),切勿写入密钥值。
Handoff
Handoff
The handoff document is the only thing writes. No commits, PRs, or production-code edits. Use the host's read-only inspection capabilities plus a write capability scoped to . End by showing the slug's orientation line, a normal Markdown link to the note, and repo-root-aware resumption commands. Keep the note link outside fenced code so it is clickable. The link line should match this shape: .
/wheypoint.cheese/notes/**Wheypoint dropped: [.cheese/notes/<slug>.md](<absolute-note-path>)Resume from original repo:
bash
cd <absolute-repo-path>
/cheese --continue <slug>Resume from anywhere:
bash
/cheese --continue <absolute-repo-path>/.cheese/notes/<slug>.md/wheypoint.cheese/notes/**Wheypoint dropped: [.cheese/notes/<slug>.md](<absolute-note-path>)从原始仓库恢复:
bash
cd <absolute-repo-path>
/cheese --continue <slug>从任意位置恢复:
bash
/cheese --continue <absolute-repo-path>/.cheese/notes/<slug>.md