用途:把在宿主仓库中验证成熟的技能回收进 gbrain 技能包,便于其他客户端复用。它是 gbrain skillpack scaffold 的反向流程,scaffold 向下游分发技能,harvest 则把成熟的模式从宿主(如你的 OpenClaw 或私有 fork)上提到 gbrain,成为可被其他客户端脚手架化的参考。
主要能力:产出三类构件——gbrain 工作树中的 skills/<slug>/SKILL.md(及 routing-eval.jsonl 等同级文件)、宿主 SKILL.md 在 frontmatter sources: 中声明的配对源文件的镜像路径(如 src/commands/<slug>.ts),以及更新后的 openclaw.plugin.json(把新 slug 加入 skills: 并排序)。会话输出为一行成功摘要加写入文件列表;--json 模式返回完整 HarvestResult。
使用方式:先规划 slug(kebab-case、全局唯一)与宿主仓库根路径,确认是否带入配对源文件;用 gbrain skillpack harvest <slug> --from <host-repo-root> --dry-run 预览文件集;做编辑化通用处理(把 fork 专有名称、人名、真实实体、邮箱、内部 Slack 频道、追踪器 ID 等替换为占位符,如 alice-example、acme-example、fund-a);再执行 gbrain skillpack harvest <slug> --from <host-repo-root>;随后验证:bun test test/skills-conformance.test.ts、gbrain skillpack check --strict、gbrain skillpack list,并审阅 diff 后提交。
限制:harvest 是复制而非移动,宿主技能保留原处;不会自动清洗名称,编辑处理需人工完成;不发布到 npm 或远程 bundle,只写入 gbrain 工作树;不支持 --all 批量回收,一次一个技能;隐私 linter 命中会回滚并非零退出,必要时才用 --no-lint 并在提交信息中说明理由。技能仍不稳定、含无法通用化的私有内容或仅为一次性草稿时不应调用。