使用方法
- 复制安装命令,在自己的智能体环境安装前先检查源码包。
- 从原始文档核对所需工具、凭据和支持的宿主。
- 说明输入材料与期望交付物,并对照来源检查输出。
npx skills add https://github.com/paulnsorensen/easy-cheese --skill wheypoint开始前需了解
- 安装不包含模型订阅、API 额度或访问文件的权限。
- 仓库星数和安装量反映活跃情况,不等于独立质量或安全测试。
按源仓库内容呈现,保留标题、案例、代码、表格、链接以及原文引用的演示图片。
/wheypoint
/wheypoint records the state a new agent needs to resume the work.
Use it for culture sessions, for work without a phase slug, and for a phase's Checkpoint & stop option. A phase checkpoint is a standalone, non-terminal Wheypoint record, not a terminal phase artifact. Workers at a hard limit return observations; the parent, not the worker, runs checkpoint persistence.
Inputs
- The conversation is the primary input.
- The optional argument shapes only the orientation line; the focus never removes a decision, question, or directive.
Runtime commands
Run every command through this skill's archive by its resolved installed bundle path; see `../cheese/references/harness-portability.md`. When the consumer repository lacks skills/, resolve the installed bundle path before execution; never assume the easy-cheese checkout or current working directory.
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 | dispatchRepeat --grep, --status, --next, or --project to search several values in one list call; a hit matching any value of one flag is kept, and distinct flags combine with AND; never loop over list once per term; outside a Git checkout, list with no --scope searches machine scope and reports scope-fallback: machine, while an explicit --scope keeps its meaning. fork writes only a child genesis record with one forked_from edge; import writes only an imported record, and bundle_digest covers the canonical bundle with no field of its own; `references/work-graph.md` gives refs, edge kinds, the bundle, and the list graph filters. Create a link with checkpoint --link; resolve validates artifact links, grounded paths, Git objects, and coverage; a slug with no exact match resolves by unique prefix, then unique substring, and several matches return ambiguous with every candidate. resolve, list, log, show, schema, and turns only read; direct invocations return output, and STOP before checkpoint writing. /cheese --continue uses resolve and never invokes another archive; slash commands are host renderings, not the control model; foreign machine hits require the owning checkout; follow the continuation protocol. The parent delegates persistence to this capability as one structured checkpoint task and runs validate before checkpoint; workers never invoke either command at a hard limit. Phase skills resolve with their own wheypoint-resolve --ref <slug> command; follow `references/delta-contract.md` for its outcomes, working_context, and findings.
Flow
- Read the user's words. Run
turnsand keep every user turn in view. - Map each turn to an entry, or write one line that says why the turn is not captured.
- Rehydrate. Run
showorresolvefor the work id and note itsrevision_id; a first checkpoint needs no base. - Every write to an existing record needs that
revision_idas--base(orbase_revision_id).
After a compaction, read again before you write.
- Write the intent. Follow `references/intent-contract.md`.
- Put each user-stated constraint or preference in a
directiveentry with its verbatimquote. - Put each choice in a
decisionentry with arationale. - Put each open item in a
questionentry; give a blocking question arationale. - Record a parked fork as a
questionwith--gatesand a--rationalethat names the options and your prior leaning. - Put the report a cold reader needs in
notes. - Put paths and URLs in
artifact_linksandworking_context, not their contents. - Validate. Run
validate --base <revision_id>and fix every named problem. - Checkpoint. Run
checkpoint --base <revision_id>.
A base-revision-required or stale-parent refusal means: read again, apply your change again, then write.
- Report. State the durability the result reports and the resume commands.
What the runtime enforces
The runtime refuses an intent instead of dropping data.
- It refuses an unknown key and names its path.
- It refuses a first checkpoint that carries no entry and no notes.
- It refuses
next: affinagewithout a PR reference inartifact. - It refuses
next: cookwithout anartifact. - It refuses text that matches a credential pattern and names the field.
- It refuses an empty
artifact_linksorremove_artifact_linkslist. - It derives
status:from the gating entries per the handback contract; no author sets it. - It refuses a
baselinekey rather than drop it; a Cook baseline stays in the Cook handoff. - It requires a rationale for each blocking question a delta adds.
- It derives every identifier, digest, and revision.
- It refuses an agent-authored
forktransition and aforked_fromedge in a delta. - It refuses
notesover 6000 characters. - It pins a bare
path:lineinworking_contextor an artifact link topath:line@<short HEAD sha>whenHEADholds the file, and otherwise warns withunpinned-line-ref(no checkout or commit, or an untracked, ignored, or absent file). - It lists each local reference (an
xdg:ref, an absolute path outside the checkout, or a Git-ignored path) under## Local references. - It warns with
stale-noteswhen a decision changes andnotesstay as they were, marks that drift at the top of## Notes, and lists an entry thatcheckpoint --supersede <old> [--by <new>] --rationale <why>replaced under## Superseded.
Fix a refused intent and run checkpoint again.
Handoff slug
The checkpoint command writes the shared preamble at the top of the generated projection; every consumer reads it with 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>For next: tasks the projection adds a mode: parallel keyed line after artifact:; the keyed block after the orientation holds the Wheypoint pins. The projection body shows gates, open entries, decisions, directives, notes, context, artifacts, tasks, and a final ## Identifiers section. The projection title is # Wheypoint handoff. The projection is never the authority; never edit it and never resume from it by hand.
next: values
The meaning of each next: value is in `references/intent-contract.md`; briesearch and culture are read-only kickoffs, and tasks follows `references/parallel-handoffs.md`. A missing next: makes the handoff malformed; use hold when no action follows. Derive next: and status: from the open questions, not from expected success. Use status: gated: for every human decision; the resumed agent asks through the shared handoff gate before it dispatches. Handwritten notes, their legacy values, and their provenance fields are in `references/legacy-notes.md` and `references/provenance-fields.md`.
Rules
- Never run a Git commit, push, or publication to raise durability.
- Never write a note by hand, never edit a generated projection, and never include a secret value.
- Reference each artifact by path or URL; do not copy its contents.
- Use complete sentences; write one sentence per line.
Handoff
End with the orientation and this link: Wheypoint dropped: [.cheese/notes/<slug>.md](<absolute-note-path>).



