c2d6a5a0d7
Redeploy locally with docker compose when the node is 127.0.0.1 and the image already exists. Make list/sync/remote/deb importable under python3 -I -S. Add human README.md for every builtin skill, slim ack's user-facing docs, and drop unused OpenSpec config.
2.4 KiB
2.4 KiB
declarative-openspec-loop
你提供「怎样算符合预期」的校验方式,Agent 按 OpenSpec 走 propose → apply → 校验,不通过就分析原因再迭代,直到通过。
什么时候使用
- 已经能说清目标,也有办法判断结果对不对,希望 Agent 自动做到通过为止。
- 会说「声明式编程」「按预期循环」「做到校验通过」。
- 不适合:还在选型、还没有校验手段、只想改一小处且自己盯着看。
安装
pouch add declarative-openspec-loop # 当前项目
pouch add declarative-openspec-loop -g # 全局
使用前准备
- 本机已安装 openspec CLI。
- 当前 Agent 已安装 OpenSpec 的三个子 skill:
openspec-explore、openspec-propose、openspec-apply-change。 - 你必须给出校验方式,缺了 Agent 会先问,不会空跑。可用下面任意组合:
- 校验命令,退出码 0 即通过,比如
make test-one2 - 预期文档,里面有校验项表
- 清单:日志关键字、输出文件、数值容差
- 自由描述:Agent 会先归纳成可执行检查,向你确认后再跑
- 校验命令,退出码 0 即通过,比如
使用示例
按声明式循环做:让登录失败时返回统一错误码。
校验:跑 pytest tests/test_login.py,全部 green 即通过。最多 3 轮。
目标:拟合轮廓与 docs/tmp/expect_desc.md 一致。
校验:make test-one2,且日志覆盖文档「校验项」表全部 8 项。
Agent 会做什么
- 记下 change 名称和校验方式,写到
docs/tmp/<change>/expectation.md。 - 必要时先探索;然后 propose 出 proposal / design / tasks,每个任务尽量带验收。
- apply 实现,再跑你给的校验。
- 失败按原因分级:小 bug 直接修;任务遗漏就补 tasks;方向错了才改设计。默认最多 5 轮(你可改上限)。同一错误连续 2 轮会停下来问你。
- 通过后给出变更摘要和思路,过程记录留在
docs/tmp/<change>/。
不会在没校验方式时开跑,也不会到上限后自己放弃或无限重试。
如何判断完成
- 你指定的校验命令退出码 0,或校验项全部满足。
- Agent 给出变更文件列表和思路。
docs/tmp/<change>/里有expectation.md、每轮iteration_*.md和校验原始输出。- 到上限或反复失败时停下,并说明当前进度和未通过项,而不是假装完成。