Skip to content

keel v0.4.0

Choose a tag to compare

@shiftu shiftu released this 10 Sep 10:49
· 4 commits to main since this release

M4:复用与扩展

跨仓库复用一套 keel 配置。一句话:模板给的是建议,不是既成事实。

模板导入

keel init --from https://github.com/org/keel-template.git@v1

导入模板仓库 .keel/ 的可复用部分,并把来源解析成一个 commit 钉进 .keel/template.yaml。

导入面:keel.yaml(tools 除外,它是本机探测结果)、skills/**、rules/*.md、cases/**。

不导入:decisions/、memory/、evidence/、intent.md。它们是源仓库的项目事实——
证据的 digest 是对着那边的代码算的,在你这边永远对不上;intent.md 是你自己项目要回答的问题。

导入的规则一律落成 candidate,模板里写 active 也一样,同时清空 evidence、verifier_digest
和 from,用 from_template 记下 <source>@<commit>。M3 定的「promote 不能自我批准」不许绕开:
装个模板不等于让别人的仓库决定你这边执行什么代码。要生效,仍得本地 keel decide 记依据、
keel promote 跑对照验证。

三方更新

keel template status                    # 不联网,只答「本地相对导入基线动过什么」
keel template update [--to <ref>] [--dry-run]

update 拿模板新版、上次导入的基线、你现在这一版做三方比较:

你改过吗 模板改过吗 结果
没有 改了 快进写入
改了 没改 保留你的
改了 也改了 一个字节都不写,退出码 1
没这个文件 新增 写入
你删了 — 不写回
— 模板删了 不删你的

冲突不阻塞其他文件;冲突文件的基线不推进,会一直报到人处理为止。
keel.yaml 比的是配置的含义而不是字节,快进时保留本地 tools。

sync --codemap

按目录列的仓库地图,写 .keel/knowledge/CODEMAP.md。输入是 git ls-files 不是工作树遍历,
两台机器生成的逐字节一致。只列目录,没有 AST 也没有调用图。
长期开启用 knowledge.codemap: true。

未做

claude / codex 之外没有加新适配器。技能的对照评估继续后置(仍缺宿主任务集);
M4 只把技能的版本定义成模板钉住的那个 commit。


go test ./... 全绿。SHA256SUMS 随本次发布附带,可用 shasum -a 256 -c SHA256SUMS 校验。