diff --git a/.harness/engine.lock b/.harness/engine.lock index 3f16493..9af9978 100644 --- a/.harness/engine.lock +++ b/.harness/engine.lock @@ -1,6 +1,6 @@ { "engine": "delivery-harness", "version": "0.1.0", - "commit": "c22ddedd6c98c55e9a25025663bce72807ef81d3", - "tree": "sha256:a33b78ba880f14f5efdf3b158843291768e228f21764f50b6e5c85d0a642953d" + "commit": "f7b79913a04206c2ff9452f540bcd1211096ff54", + "tree": "sha256:c5900fe320c95e8d98c2e2663d602bc629a1e5352add91647b29fed67ed32702" } diff --git a/.harness/engine/core/install.py b/.harness/engine/core/install.py index c85f317..1295310 100644 --- a/.harness/engine/core/install.py +++ b/.harness/engine/core/install.py @@ -65,7 +65,7 @@ def migration_notes(previous_version: str) -> list[str]: if line.startswith("## "): version = re.search(r"\d+\.\d+\.\d+", line) applies = "Unreleased" in line or (version is not None and _version_tuple(version.group()) > _version_tuple(previous_version)) - elif applies and "**Migration:**" in line: + elif applies and line.lstrip("- ").startswith("**Migration:**"): notes.append(line.lstrip("- ").strip()) return notes diff --git a/AGENTS.md b/AGENTS.md index f113eb0..8422e8a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -5,7 +5,7 @@ ## 开发入口 - Python 后端和适配器在 `scripts/`,Swift 原生界面与 Zcode 导航在 `native/`,统一 CLI 在 `bin/session-manager`。 -- 统一验证:`bin/verify`(lint、仓库卫生、Python 测试、macOS 上的 Swift 测试,与 CI 同口径)。修复提交带 `Defect: <编号>` trailer,通过与否只认 verify 与 CI 输出,不手写。约定与护栏见 docs/specs/delivery-harness.md;harness 引擎是独立项目 delivery-harness(装在 `.harness/engine/`,只能经 `upgrade` 整体替换),引擎的开发、待办与路线都在该仓库(本机 `../delivery-harness`)进行,本仓库只经升级 PR 接收新版本。 +- 统一验证:`bin/verify`(lint、仓库卫生、Python 测试、macOS 上的 Swift 测试,与 CI 同口径)。修复提交带 `Defect: <编号>` trailer,通过与否只认 verify 与 CI 输出,不手写。约定与护栏见 docs/specs/delivery-harness.md;harness 引擎是独立项目 delivery-harness(装在 `.harness/engine/`,只能经 `upgrade` 整体替换),引擎的开发、待办与路线都在该仓库(本机 `../delivery-harness`)进行,本仓库只经升级 PR 接收新版本,升级流程(含迁移项处理)按 `../delivery-harness/docs/upgrading.md`。 - 新环境准备由 Agent 自行完成,不交给人(均幂等,可重复执行):`scratch/iterm-probe-venv` 缺失时按 README.zh-CN.md「快速上手」重建;`scratch/iterm-probe-venv/bin/python -m pip install -r requirements-dev.txt`;`bin/harness guard-git install`;最后 `bin/verify`,它会检查前两步。 - Agent 工具的项目守卫需要人确认一次信任,Agent 不得代为授权(自授信任等于执行者给自己放行):Agent 不得替执行方信任槽位或仓库里执行方能改的项目文件。`bin/dispatch` 派发 Pi 时用 `-na` 忽略槽位中的全部项目文件、`-e` 显式加载从 origin/main 导出的守卫,守卫来自经用户批准合并的 harness,不需要也不构成对槽位的信任(用户 2026-09-28 确认)。开工时自查,未信任就把命令交给用户:Zcode 用 `zcode hooks trust status --workspace <仓库根>` 查看,按其提示由用户 `grant`;Pi 由用户在仓库根启动 `pi` 执行 `/trust`;Claude Code 首次启动时由用户确认项目钩子;OpenCode 无需确认。未信任时 Agent 层守卫不生效,只剩 git 与服务端两层。 - 派发与评审:执行方任务先写任务书(`docs/templates/task.md`,合并后)再用 `bin/dispatch run <任务书>` 派发,不在主目录运行执行方;设计方自己实现的工作也写任务书,与实现同一个 PR。R2 以上 PR 的独立评审用 `bin/dispatch review`(本机常驻 `--watch`)。现状与下一阶段见 docs/review/2026-09-29-harness-status.md。