Merge pull request 'Bound CLI tasks and preserve model-aware phase handoffs' (#622) from feature/norm-remediation-u7 into feature/norm-remediation
ci / svc-realcombo (pull_request) Successful in 2m12s
ci / test (pull_request) Successful in 7m42s
ci / test-pg (pull_request) Successful in 8m19s

This commit was merged in pull request #622.
This commit is contained in:
2026-10-18 18:00:19 +00:00
3 changed files with 278 additions and 3 deletions
@@ -0,0 +1,216 @@
# feature/norm-remediation-u7 任务卡
任务主记录:PR #622 https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/622;状态:已完成(合入前闭合);owner:weichen
- 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= eef7e5e778cabcb6216f74b74213a3d7511f383b
- 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u7(worktree);分支:feature/norm-remediation-u7
- 分支类型:child;initiative_id:feature-norm-remediation;root_target:main;immediate_target:feature/norm-remediation;accepting_requirements:false;parent_branch:feature/norm-remediation;parent_head_sha:c6fe5adba34d7266e7bcfbb9a2c64a0ae61e9b8e;parent_pr:无;parent_source:origin
- 需求分流:免(父 initiative 子任务登记已列出 feature/norm-remediation-u7;parent_head_sha=c6fe5adba34d7266e7bcfbb9a2c64a0ae61e9b8e)
- 授权与交付终点:用户追加并确认 U7:完善 subagent/CLI 的有界任务、容量规划、模型分工、阶段交接与测试要求;本子任务经 Review/CI 合入 initiative。范围限 `AGENT-EXECUTION.md`、`policy/delivery.md`;通用规则已由 Guidelines PR #11 合入,最终 pin/采纳归 U6。本任务不部署、不改平台或执行器架构。
- 交付模式:goal-first(目标、范围和交付终点一次确认;范围内连续推进)
- 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md)
- 合入执行:agent(已授权交付范围内,Review 通过、冲突解决且当前 HEAD 的 CI 通过后合入)
- 流程依据:仓库根目录 policy/delivery.md(归档后仍按仓库根目录定位)
## 目标与非目标
目标:工作包适合较小/未知容量模型,以一个可独立验证的结果、最小背景和明确验收派发;阶段完成自动持久交接,下一 CLI 会话全新,原生压缩仅在支持时可选;具体规划/执行模型偏好归项目本地配置,requested/effective/不可观测状态如实区分。未知容量使用 100K 显式规划假设,给实现/迭代/测试保留空间;不新增控制器、Schema 或失败门禁。
共享基线:Guidelines PR #11,merge `a15db5085585f199c3c399824f6cf24c3144bbd5`(draft.14);独立 Review、schema/config 校验与 CI run 3978 均通过。正文/模板和 Review 修复 transport 分别见 `/tmp/guidelines-u7-receipt.json`、`/tmp/guidelines-u7-review-repair-receipt.json`;worker 私有索引 intent-to-add 曾被撤销,为执行偏差,不证明提示具备工具强制力。
## Agent 实施收据
路由与 fail-stop 规则见根目录 AGENT-EXECUTION.md 与 policy/delivery.md;每次尝试一行,原始日志留在源码外收据路径。
| 单元 ID | 预期范围 | 配置摘要 | 角色 | 候选顺序 | attempt | CLI/模型 | 终态 | transport | fallback | 源码外收据路径 |
|---|---|---|---|---|---|---|---|---|---|---|
| norm-u7-dev-bounded-cli-routing | AGENT-EXECUTION.md + policy/delivery.md | caefcb72 (prior config) | implementation | cursor, agy, pi | 1 | cursor-agent-stable / auto | success | e16a75c5111c | 0 | /tmp/norm-u7-dev-receipt.json |
| norm-u7-dev-independent-review | independent fixed-diff/config review | run receipt | review | pi, agy, cursor, codex | 1 | pi / minimax-cn/MiniMax-M3 (actual event) | success | 892cf59c5075 | 0 | /tmp/norm-u7-dev-review-receipt.json |
## 同步记录
| 节点 | sync_base_sha | tested_head_sha | checked_at |
|---|---|---|---|
| 启动 | eef7e5e778cabcb6216f74b74213a3d7511f383b | c6fe5adba34d7266e7bcfbb9a2c64a0ae61e9b8e | 2026-10-18T17:35:52Z |
## 证据(Evidence)
<!-- CMD="<命令>" make evidence 写入;手抄/转写输出视为无效证据(AGENTS.md 证据与验证门禁)。 -->
| 时间(UTC) | 命令 | 被测HEAD | exit | 来源 | sha256(16) |
|---|---|---|---|---|---|
## 结果与验证
- 结果:共享有界工作包与交接标准已合入 Guidelines PR #11(draft.14);本仓补齐工作包最小信息、100K 保守假设、阶段交接和 requested/effective 区分。PI 请求已明确为 `minimax-cn/MiniMax-M3`,独立 Review 实际事件也报告同 provider/model;Cursor auto,agy Flash 偏好保持 NOT_VERIFIED。普通上下文压力不触发扩围停止;无自动压缩或未知容量不阻断其他授权工作。
- 验证:host 在 `e16a75c5111c861afea11458194ac308f81ca99a` 运行配置校验、6 项 agent-exec 入口测试与 diff-check 均通过(SELF);独立 fresh PI Review 重放固定 diff/配置,无阻塞 finding。两个 CLI run 均为新进程和独立隔离工作区,未使用 resume/continue;session ID 未单独提取时记 not-observable,独立性依据 run/attempt 及新进程,不伪造 ID。
- 影响与剩余项:U6 才推进 Guidelines pin/采纳记录;当前旧 pin 不宣称已经采用 draft.14。未知/已知容量例子是规范一致性检查,不证明实际模型最大容量或质量提升;同任务真实模型前后质量基准 NOT_RUN(本次交付是规范与配置,未建设评测平台,也未宣称质量提升的实测数值)。端点/登录/压缩与并发强制能力均不作无证据断言。
## 合入与清理
- Review 记录(stage=review,fresh_session=true,model=minimax-cn/MiniMax-M3 as configured for PI,session ID=not-observable):独立 Review session;base=c16665365bbbf3b733b034628f102db90d985637;head=e16a75c5111c861afea11458194ac308f81ca99a;范围限 diff AGENT-EXECUTION.md + policy/delivery.md。
- 命令与对象:`git diff c16665365bbbf3b733b034628f102db90d985637..e16a75c5111c861afea11458194ac308f81ca99a -- AGENT-EXECUTION.md policy/delivery.md` → 98 行差异(AGENT-EXECUTION.md +41/-3,policy/delivery.md +24/-0);`scripts/agent-exec validate --repo .`(deps/development-manager 未初始化,回退到精确钉住 dm 二进制 `$HOME/.cache/agent-system-dev/agent-exec/dm-server-67784f43eb0430bf596c2cda685cbb4946d2e032` 与 index 钉住 `67784f43eb0430bf596c2cda685cbb4946d2e032` 完全一致;未写规范仓;binary version=0.1.0-dev)→ `validate: ok`,exit=0。
- 结论:无 blocker。机器块(`execution.fallback_to_host=never`、`max_attempts_per_profile=3`、`emergency_profile=codex`、`roles.implementation/repair/test/review` 候选顺序、超时/输出字节)逐项与 base 一致;PI `model` 由 `auto` 改为显式 `minimax-cn/MiniMax-M3`,Cursor 保持 `auto`,agy 保持 `auto` 并在 prose 明示 Gemini 3.8 Flash 为 `NOT_VERIFIED`(未观测模型 ID,未声称生效);新增 prose 段只描述本仓做法并显式声明「本节不新增门禁,不放宽凭据、范围、未知副作用与 CI 边界」与「Role lists, attempt limits, timeouts, output limits, the single Codex emergency attempt, stage isolation and fallback_to_host: never are unchanged」。
- 观测性:`requested` 模型是提示/配置意图,`effective` 以运行事件信封为准,CLI 不报告时记 `not-observable`;未知容量、agy 缺登录、缺自动压缩均登记事实,不作为全局 fail-close(仅真实扩围走既有 `scope-expansion` fail-stop)。现有 scope/credential/unknown-side-effect fail-stops 未删未弱。
- 单元包/容量:bounded packet JSON 的 `goal/constraints/verification` 已含一个结果与验收、允许路径、最小必读、前置 SHA、直接验证命令、未知容量按保守 100K 假设并为执行留余量;100K/200K/300K/500K 仅为规划参考,未声明任何 provider 能力;不新增 schema/字段/控制器。
- 阶段交接:里程碑持久交接写入既有任务记录,下一 CLI 阶段或单元以全新会话启动,只读交接与最小必读,不为交接等人工。
- 上下文压力:仅在 provider 支持且阶段完成后做上下文压缩;不支持不阻塞;普通压力走交接 + host 重新打包。
- 非阻塞观察(不阻塞交付):`AGENT-EXECUTION.md`/`policy/delivery.md` 中新增的相对链接指向 `deps/development-guidelines/standards/agent-execution.md` 与 `deps/development-guidelines/workflows/handoff.md`;当前 `deps/development-guidelines` gitlink 仍为 `2688fd2be6a52c0bf110e7e6366b6f291ab5e4eb`(未在 U7 范围 bump),文件存在与否须 U6 pin 时再核,prose 未声称当前 pin 已采纳 Guidelines PR #11(merge `a15db5085585f199c3c399824f6cf24c3144bbd5`),仅引导后续采纳。`policy/delivery.md` 锚 `#有界单元包上下文与阶段交接` 与新章节 `### 有界单元包、上下文与阶段交接` 在 GFM 风格锚归一化(移除中文标点)下等价。`agy` 段仅将「Gemini 3.8 Flash」记为请求,未声明能力,符合「不发明模型能力」要求。
- 不主张 CI 通过;未运行任何 live API/模型探测;未改 source/config/index/refs;未开 PR/部署/派遣同伴。审阅者身份:本独立 session(PI / minimax-cn/MiniMax-M3,session ID not-observable,stage=review)。重放依据:`git rev-parse HEAD` 与 `git ls-files -s deps/development-manager` 即可复现。
- 冲突记录:已同步包含 U4 的 initiative `825e4fc`,无冲突;U7 代码/配置相对已审实现 `e16a75c` 未再改变。host 在合成 head `3da20d4` 校验配置并重放入口+事实测试 14 项,均通过(SELF,receipt 已导入),未重跑与此无关的完整套件。
- CI 记录:NOT_RUN(当前 HEAD 完整 SHA、全部必需检查、运行链接、执行身份及 GATE 结果)
- 合入记录:NOT_RUN(交付授权范围、PR、被核验 HEAD、合入 SHA、目标分支及内容核验)
- 清理记录:NOT_RUN(授权依据、写者退出确认、worktree/分支/任务卡处置)
<!-- Local receipt: SELF. Digests detect corruption; they do not authenticate a reviewer or CI. -->
```json
{
"summary_schema": 1,
"source": "SELF",
"timestamp": "2026-10-18T17:34:44.780514+00:00",
"command": "make precheck",
"exit_code": 0,
"cwd": "/home/weichen/projects/Agent-System-Dev",
"before_head": "eef7e5e778cabcb6216f74b74213a3d7511f383b",
"after_head": "eef7e5e778cabcb6216f74b74213a3d7511f383b",
"branch": "main",
"target_branch": "main",
"target_head": "eef7e5e778cabcb6216f74b74213a3d7511f383b",
"root_target": "main",
"immediate_target": "main",
"before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"output_tail": [
"make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev'",
"[repo] branch=main head=eef7e5e778",
"[remote] origin/main=eef7e5e778 ahead=0 behind=0",
"[tree] clean submodules_drift=0 uninit=12",
"[warn] 12 个子模块未初始化——构建/测试前需物化(不阻断写入)",
"[worktrees] linked=7",
"[recycle] merged un-recycled branches: feature/layered-python-env",
"[initiatives] local cards (not authoritative): none",
"[hooks] core.hooksPath=scripts/hooks(pre-commit/post-merge 实际接线)",
"[facts] policy/facts.md 6 条事实均在有效期内",
"[required-reading] core/baseline.md, workflows/delivery.md §1, policy/delivery.md",
"[R0] eef7e5e778(完整:eef7e5e778cabcb6216f74b74213a3d7511f383b)",
"[worktree] before-sync: recursive component checks passed",
"[verdict] READY — 保留本次 precheck receipt 后建任务工作区:PRECHECK_RECEIPT=/tmp/task-precheck.json make task-start NAME=feature/your-branch",
"make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev'"
],
"output_sha256": "8ebd14a4e8639e7dffb04336ad69df1bb8f80b36d3f9cf1c0875966b3503b3f4",
"receipt_sha256": "595376851618682c9df8e7c637c465e9950237249d07bf36ea0726026961fe06",
"receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/595376851618682c9df8e7c637c465e9950237249d07bf36ea0726026961fe06.json"
}
```
<!-- Local receipt: SELF. Digests detect corruption; they do not authenticate a reviewer or CI. -->
```json
{
"summary_schema": 1,
"source": "SELF",
"timestamp": "2026-10-18T17:39:09.639625+00:00",
"command": "scripts/agent-exec validate --repo . && python3 -m unittest tests.test_agent_exec_entry && git diff --check",
"exit_code": 0,
"cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u7",
"before_head": "e16a75c5111c861afea11458194ac308f81ca99a",
"after_head": "e16a75c5111c861afea11458194ac308f81ca99a",
"branch": "feature/norm-remediation-u7",
"target_branch": "main",
"target_head": "eef7e5e778cabcb6216f74b74213a3d7511f383b",
"root_target": "main",
"immediate_target": "feature/norm-remediation",
"before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"output_tail": [
"validate: ok",
"......",
"----------------------------------------------------------------------",
"Ran 6 tests in 0.389s",
"",
"OK"
],
"output_sha256": "8fde6c3d2592daa001b2e9856870a9725c40bcd8c52e7e56c58852005c56eab7",
"receipt_sha256": "1478aa40c6d51ff8198bf6517ba5fa4a7fd51f33a7112d52057e771f346cf248",
"receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/1478aa40c6d51ff8198bf6517ba5fa4a7fd51f33a7112d52057e771f346cf248.json"
}
```
| 同步(记录前对象) | 825e4fc98f30da4950a48d15d59f5338206726bf | 66696bfc436a4adadf70fe7ecfc6ab4cda631d65 | 2026-10-18T17:48:16Z |
<!-- Local receipt: SELF. Digests detect corruption; they do not authenticate a reviewer or CI. -->
```json
{
"summary_schema": 1,
"source": "SELF",
"timestamp": "2026-10-18T17:47:48.776787+00:00",
"command": "make task-sync",
"exit_code": 0,
"cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u7",
"before_head": "2de3d398ccc1db9d235238016a12755b4ea989f2",
"after_head": "3da20d47b5a4a0732effad4992daf17acd2af944",
"branch": "feature/norm-remediation-u7",
"target_branch": "main",
"target_head": "eef7e5e778cabcb6216f74b74213a3d7511f383b",
"root_target": "main",
"immediate_target": "feature/norm-remediation",
"before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"output_tail": [
" policy/facts.md | 9 +-",
" scripts/facts-verify.sh | 79 ++++++",
" tests/test_facts_verify.py | 399 +++++++++++++++++++++++++++",
" 4 files changed, 746 insertions(+), 2 deletions(-)",
" create mode 100644 .task/archive/feature-norm-remediation-u4.md",
" create mode 100644 tests/test_facts_verify.py",
"[worktree] before-update: recursive component checks passed",
"[worktree] materialize: recursive component checks passed",
"[worktree] after-sync: recursive component checks passed",
"admit: ok",
"[evidence] WARN JSON receipt line 66: unverified: recorded component state was not at its pinned SHA ——关键检查须重跑并以 make evidence 重新写入",
"[evidence] WARN JSON receipt line 107: recorded HEAD predates non-card changes ——关键检查须重跑并以 make evidence 重新写入",
"[synced] sync_base=825e4fc98f30da4950a48d15d59f5338206726bf tested_head=3da20d47b5a4a0732effad4992daf17acd2af944 checked_at=2026-10-18T17:48:16Z changed=1 sync_target=feature/norm-remediation",
"[next] 跑正式验收(make test 等),证据写入任务卡",
"make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u7'"
],
"output_sha256": "0397ae866aa211d57b600b60355563e5dc4ebb1d09569ef0cc607dfbe5bd1f27",
"receipt_sha256": "bcb38dab3f750867a93de90576aa0d39f7fd0501fb0557c085a6d26cf1a29779",
"receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/bcb38dab3f750867a93de90576aa0d39f7fd0501fb0557c085a6d26cf1a29779.json"
}
```
<!-- Local receipt: SELF. Digests detect corruption; they do not authenticate a reviewer or CI. -->
```json
{
"summary_schema": 1,
"source": "SELF",
"timestamp": "2026-10-18T17:49:37.631093+00:00",
"command": "scripts/agent-exec validate --repo . && python3 -m unittest tests.test_agent_exec_entry tests.test_facts_verify && git diff --check",
"exit_code": 0,
"cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u7",
"before_head": "3da20d47b5a4a0732effad4992daf17acd2af944",
"after_head": "3da20d47b5a4a0732effad4992daf17acd2af944",
"branch": "feature/norm-remediation-u7",
"target_branch": "main",
"target_head": "eef7e5e778cabcb6216f74b74213a3d7511f383b",
"root_target": "main",
"immediate_target": "feature/norm-remediation",
"before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"output_tail": [
"validate: ok",
"..............",
"----------------------------------------------------------------------",
"Ran 14 tests in 4.466s",
"",
"OK"
],
"output_sha256": "0abf86ce43ea39bd4b51a9be1a3ca8bc47531f3e75e13af28f7f1f4d6452bc19",
"receipt_sha256": "3fb74abf04253157034696850c14561fdee89c6a47e3da22aaea6a5ef419ef70",
"receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/3fb74abf04253157034696850c14561fdee89c6a47e3da22aaea6a5ef419ef70.json"
}
```
## 闭合记录(合入前折叠)
- 本卡在 PR #622(https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/622)合入前闭合并归档,随该 PR 一同合入。
- 该 PR 的合并提交即本任务的落地记录。
- 合入后无需回填,也无需单独的闭合 PR。
+38 -3
View File
@@ -18,8 +18,8 @@ increment host fallback authorizations. Safe exhaustion without an emergency
candidate ends `unavailable` or `blocked`, and that result does not authorize
the host to write the unit. The legacy value `all-unavailable` remains
parseable and likewise grants no host write authority. Cursor uses
`cursor-agent-stable`. `model: auto` lets each CLI use its configured default
model; PI therefore uses the operator-selected MiniMax default. The
`cursor-agent-stable`. `model: auto` lets a CLI use its configured default
model; any other value is passed to that CLI as its model selector. The
`integration` block declares the host-exempt paths and the transport, admission,
and cleanup entry points.
@@ -60,7 +60,7 @@ profiles:
pi:
adapter: pi
executable: pi
model: auto
model: minimax-cn/MiniMax-M3
enabled: true
codex:
@@ -78,3 +78,38 @@ integration:
cleanup:
command: make task-finish
```
## Model preferences (project choice)
Generic rules for bounded packets, context budgeting, phase handoff and
requested-versus-effective model identity live in the shared
[standards/agent-execution.md](deps/development-guidelines/standards/agent-execution.md)
and [workflows/handoff.md](deps/development-guidelines/workflows/handoff.md);
project procedure is in
[policy/delivery.md](policy/delivery.md#有界单元包上下文与阶段交接). This
section records only this project's choices.
- Planning, design and implementation plans: Codex or Claude when available,
in the host or a fresh CLI session. This is a preference, not a routing role.
- Bounded implementation, repair and test units: the existing normal
candidates in the configured role order above. Requested models:
- PI: `minimax-cn/MiniMax-M3`, passed as `--model provider/id`. PI
actual events have reported `minimax-cn` / `MiniMax-M3` and the local
offline catalog lists that profile; each run still records the effective
model from that run's events.
- Cursor: `auto` (Cursor Auto).
- agy: Gemini 3.8 Flash is requested, but its exact selectable model ID and
effective identity are `NOT_VERIFIED` (the `agy` models query needs a
login that was not available). The profile therefore stays `model: auto`
until an observed model ID exists; do not claim Gemini 3.8 Flash is active.
- Assigning a different candidate or model to a unit needs a concrete,
task-specific reason recorded in the task record, and stays within the
existing roles and candidate lists. It is not a silent permission or routing
change. Role lists, attempt limits, timeouts, output limits, the single
Codex emergency attempt, stage isolation and `fallback_to_host: never` are
unchanged by these preferences.
- A requested model is prompt/config intent. Only the model reported in a
run's actual event envelope counts as effective; when the CLI does not report
it, record `not-observable`. Unknown context capacity, a missing agy login
or missing automatic compaction are recorded facts, not global fail-closed
conditions.
+24
View File
@@ -154,6 +154,30 @@ host 可以直接编写并提交的豁免只有 `.task/**`、`docs/superpowers/s
- 会话隔离不要求为简单任务增加新平台或复杂编排。平凡文档/配置任务仍按最小闭环执行;需要独立 Review
时只额外启动一个最小、一次性的评审 session,不复用实施 session,也不扩展任务范围。
### 有界单元包、上下文与阶段交接
通用规则见共享 [standards/agent-execution.md](../deps/development-guidelines/standards/agent-execution.md)
与 [workflows/handoff.md](../deps/development-guidelines/workflows/handoff.md);本节只写本仓做法,模型偏好见
[AGENT-EXECUTION.md](../AGENT-EXECUTION.md#model-preferences-project-choice)。
- **单元包**:用现有单元包 JSON 的 `goal`/`constraints`/`verification` 写清:一个结果及验收条件、允许路径与
须遵守的契约、非目标、前置提交 SHA、最小必读清单、直接验证命令、上下文容量及其来源(未知时按保守的
100K 假设)和为执行预留的余量。不新增 schema、运行时字段或控制器。
- **容量**:100K/200K/300K/500K 只是规划参考,不是对任何 provider 能力的声明;容量更大不授权更宽的任务,
单元仍按一个结果拆分。容量未知不构成失败条件,也不做自动容量强制。
- **阶段交接**:长任务每完成一个里程碑,host 自动在现有任务记录中写一份简短的持久交接:目标、状态、关键决定、
文件与 SHA、命令与结果、阻塞项、下一步和来源链接;下一个 CLI 阶段或单元以全新会话启动,只读取交接与最小
必读材料,不为交接等待人工。
- **上下文压力**:provider 支持时,只在阶段完成后使用其上下文压缩;没有自动压缩不阻塞工作。普通上下文压力用
交接加 host 在既有授权内重新打包单元处理;只有真实扩围才按既有 `scope-expansion` fail-stop。
- **如实区分**:请求模型与实际事件报告的有效模型;可观察的 session 身份与 `not-observable`;worker 局部自检
(SELF)与 host 集成验证、独立 Review、精确 HEAD CI(GATE)。
- **验证分工**:worker 只跑直接检查;host 在最终候选上运行一次所需的集成套件。涉及安全、契约或部署的改动,
须写明正向、负向与回归用例。
- **单写者与强制边界**:同一单元同一时刻只有一个写者,host 在运行期间不改规范检出。记录时区分三类约束:
提示词指导(单元包内容、容量、交接、模型偏好)、观察到的行为(事件报告的模型与 session),以及工具强制
(配置校验、尝试上限、超时、transport/admit)。本节不新增门禁,不放宽凭据、范围、未知副作用与 CI 边界。
### 两级分支交付模型与分流检查
本仓采用两级业务交付模型: