From 4bb2c7b1557cd2d52b7f0afc21104d00f7db4870 Mon Sep 17 00:00:00 2001 From: Snowson <15168246+Snowson@users.noreply.github.com> Date: Tue, 29 Sep 2026 11:20:48 +0800 Subject: [PATCH] =?UTF-8?q?harness=EF=BC=9A=E5=BC=95=E6=93=8E=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E5=88=B0=20delivery-harness=20f7b7991=EF=BC=8CAGENTS.?= =?UTF-8?q?md=20=E6=8C=87=E5=90=91=E5=8D=87=E7=BA=A7=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 引擎 c22dded → f7b7991(delivery-harness #5:upgrade 迁移提示只取以标记开头的条目);无迁移项待处理。 Co-Authored-By: Claude Sonnet 5.5 --- .harness/engine.lock | 4 ++-- .harness/engine/core/install.py | 2 +- AGENTS.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) 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。