Merge pull request 'Adopt the reviewed IAM permission contract and merged RDM evidence' (#534) from feature/iam-i1-permission-boundaries into main
ci / svc-realcombo (push) Successful in 2m4s
ci / test (push) Failing after 3m29s
ci / test-pg (push) Successful in 7m13s

This commit was merged in pull request #534.
This commit is contained in:
2026-10-13 16:53:16 +00:00
27 changed files with 1654 additions and 1 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,82 @@
# IAM I1 最终 Dev 组合:独立元数据与规范 Review
日期:2026-10-13 UTC。审阅者:`/root/i1_stage8_docs_review`,native Codex 独立审阅智能体;未参与本次实现或任务卡修订。只读取各仓,报告与收据仅写 /tmp。没有 Git mutation、平台账号批准、pins 修改或 RDM 源码 Review。
结论:**固定组合的文档/规范符合性通过;Critical 0、Important 0、Minor 0(原任务卡 Minor 已独立复审闭合)。** 当前没有发现范围扩大、提供者回退或文档契约失配。此结论不放行尚未完成的 Dev 当前 HEAD CI,亦不声称 I1 后续全模型、部署或清理完成。
## 固定对象与 diff
- Dev:`/home/weichen/projects/Agent-System-Dev-wt-feature-iam-i1-permission-boundaries`。
- base:`1e5c6b9c10ba77ed34663fd670138621a17342bd`。
- 初审 head:`a8c42d9a59fcd355a9c9d7ee3e0ed5b6742380fd`。
- 最终复审 head:`19b02b3cad9ff9ff19f6f7dbd04bfb0b11293f3f`。
- 初审对象:`1e5c6b9c10ba77ed34663fd670138621a17342bd..a8c42d9a59fcd355a9c9d7ee3e0ed5b6742380fd`。
- 最终结论对象:`1e5c6b9c10ba77ed34663fd670138621a17342bd..19b02b3cad9ff9ff19f6f7dbd04bfb0b11293f3f`;增量复审对象:`a8c42d9a59fcd355a9c9d7ee3e0ed5b6742380fd..19b02b3cad9ff9ff19f6f7dbd04bfb0b11293f3f`。
- 初审差异仅 PROJECT 的 4 个新增行(3 个文档链接)、Documents gitlink 与本任务卡/14 个自有记录文件,共 17 个文件;没有业务源码、UI、提供者或治理实现修改。
- Documents pin:`a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c`;与归档 PR99 actual-merge 记录一致,并以本地祖先检查确认包含已独立审阅的 `ba9d76426ded94b0ab760b25201c3a389541b4ee`、`1f3bd54cfba7518bf5d52cbef3d52a03743513bd`。
- 提供者/组件与 base 完全相同:Backend `5d5fc9891c0eb8994545ccb8b740535d9b99fb0e`、Core `5773e74086791731059730bd3726dc8c9cd1381f`、Frontend `eb2d6d32f9323094d568bc9d80b4e5ed4f0af25b`、UI `2c4322ef56df64ad72f65907d25b048a74bb5ffc`、Guidelines `2f5b19872be2a4597838a4131ad75d1be089ee5e`。没有以旧本地 pins 覆盖已纳入主干的能力。
初审读取 a8c42d9 的固定任务卡内容;初审时工作树另有该任务卡未提交修改,独立 receipt 的 status/diff 摘要完整保留。未将活动工作树内容计入固定提交结论。初审时交付者计划追加 RDM 的真实最终结果及当前 Dev 输出,新增 metadata 提交须独立核对差异/源码等价,并对新实际 HEAD 取得 CI。
## 先重放、后作者材料
先执行以下最小集,再读取作者任务卡和归档记录:
```text
RECEIPT=/tmp/iam-i1-dev-final-independent-doccheck.json CMD='git diff --check 1e5c6b9c10ba77ed34663fd670138621a17342bd..a8c42d9a59fcd355a9c9d7ee3e0ed5b6742380fd && python3 /tmp/iam-i1-u1-doccheck.py' make evidence
```
完整 SELF 收据:`/tmp/iam-i1-dev-final-independent-doccheck.json`;exit=0;receipt_sha256=`85971f4697137937a1f4a3b96a12694d5615d748e6fcc00f249a4aa7e04691dc`。before/after head 均为上述 Dev head,Documents 子对象另记为 a7ff466。固定父 SHA 与组件 SHA 未混用。
检查通过 diff 空白、原统一方案摘要 `39b8e9a6e078dc509bd80118c1807ce6ed23e4466e5902b51f4bfa255d55c0a1`、87 个当前本地链接目标、R1–R20 唯一追溯、17 稳定 action/scope、扩展申请四要素、legacy 与最终多职边界、冻结 RDM 规范修订入口及固定初始 08 核心规则。
补充静态 metadata 检查通过:3 个 PROJECT 新链接目标、Documents 实际 pin 与归档记录及两个被审提交祖先关系、所有提供者和 Guidelines pin 对 base 不变、批准投影来源原文与归档 authenticated API 摘要一致。完整 SELF 收据:`/tmp/iam-i1-dev-final-independent-metadata-check.json`;exit=0;receipt_sha256=`c28d53679d0cad41ee666a747c591e92748d4fb08addf6d8f918c2ddbe69cad1`。其精确单行命令由收据 command 字段保存;它仅进行本地 Git/文件/记录检查,没有重新请求远端。第一次辅助命令因 CMD 含实际换行被 evidence 在执行前拒绝,随后改为单行编码命令才实际运行;该拒绝不计业务结果。
所有本地检查来源为 SELF,独立身份不将工具来源升级为 GATE 或 REPLAY。
## 规范、授权和范围
- PROJECT 第 15–17 行准确限定已批准统一方案的首批 I1 U1–U2,导航到合同和结果记录;新增链接均指向实际固定 Documents 内容,不把列入规划当成全目标已完成。
- 任务卡第 10–15、49–50、889–894 行分别保留原实施授权、阶段 6 “批准”、阶段 7 “确认”的原对象,并记后续投影 r1 明确批准。原批准方案摘要保持;投影原文摘要 `3eee5714cce974ce13229b3e184bc3aa763a5e0819fdf7dcf088dafe68b1ed2a` 与 RDM 4ee4eb99 原 blob 一致。
- I1 当前 legacy 单绑定、管理员无隐含业务访问、cap/停用/换岗收口、私人资源边界及单目标投影与已审合同一致。多职、资料/目录恢复、矩阵 UI、完整资源职责、epoch、迁移、全产品浏览器/模型、部署和工作区清理没有据此关闭或启动。
- Guidelines 和 merge-queue policy 属本次 base 已包含的主干内容。policy/merge-queue.md 页首明确 approved/pending-activation、执行模式未切换;本任务没有把它当作已启用的自动队列或跳过既有同步、当前 HEAD CI、独立 Review 和平台准入条件。
- Documents 归档记录有 PR98/99 的各自 head、实际 merge_sha、时间/执行账号及准入观察;父仓实际 pin 匹配 PR99 合入记录。Docs 无 workflow/required context 的 N/A 不替代 Dev 的 CI。
## Finding:Minor M1(初审发现,已闭合)
位置:`.task/feature-iam-i1-permission-boundaries.md:12,14,73,75,89,91`(固定 a8c42d9 对象)。当前交付模式仍写“仅 I1 实施与本地自检;阶段 6 出口保留人工评审”;未标快照的旧结果/合入节还写阶段 6 尚未完成、正式阶段 8 NOT_RUN。这与页首阶段 7 已通过、进入 8–9,以及本次用户明确批准 r1 修复并继续交付的范围不完全一致,恢复者可能重复请求旧阶段批准。
最小修订:将原 delivery mode 明确标为历史授权,并记录当前 r1 修复的连续实施/测试/Review/CI/合入来源与边界;旧“结果与验证”“合入与清理”标题标明原阶段 6 快照,当前以末尾集成记录为准。不修改旧批准对象、数值或收据。交付者已被通知,可随真实 RDM 结果和最终 Dev metadata 一起收口;属于文字/状态整改,不要求权限或组件变化。
## 历史结果与最终准入
固定卡第 892 行写 RDM 当前 CI2997 仍运行、未代签合入,是该提交时的候选快照。任务来信提供了后续 RDM PR360 实际合入 `9eb8c616ef5f4431fb2dd83a3f5267bbaa725af6` 及 Actions2997/job4517 成功的结果;这些后续真实记录应由交付者原样保存到最终 metadata,而不能改写历史收据或用旧 PASS 冒充新候选。本人没有重跑 RDM 源码/真实 HTTP,RDM 两路 Review 与 13 组 HTTP 的有效对象继续由其独立记录负责。
`projection-source-link-verified.json` 明确 verified_access 为 authenticated repository owner API,200 与固定原文摘要相符;卡第 893 行也明确 RDM 为私仓。本人只重核记录结构与本地 blob,没有独立远端 API 重验,不声明该资源未认证公开可见。服务器返回的旧 html_url 不提升为权威访问入口,不重试旧域名;实际合同链接仍为当前 git-home。
初审时 Dev 最终 make test 正在独立运行并输出到源码外 `/tmp/iam-i1-dev-final-composition-test.json`;初审未读取或代签其最终结果;现已导入的实际结果及元数据复审见下节。无论该本地 SELF 是否成功,交付者仍须核验最终实际 HEAD 的 test、test-pg、svc-realcombo 等全部必需 CI、运行身份/SHA/链接及平台 stale guard;缺检查、运行中或失败不能合入。
初审 readiness 为文档/组件范围与规范一致、元数据 Minor 待闭合,最终验证与 CI 分别待核验。以下最终复审覆盖元数据整改及已追加的真实结果,不修改初审历史依据。
## 最终元数据增量复审与问题闭合
最终审阅 head:`19b02b3cad9ff9ff19f6f7dbd04bfb0b11293f3f`。相对 a8c42d9 的 9 个变更文件仅为本任务卡和自有 artifacts;固定业务源码、PROJECT、Documents/提供者/Guidelines pins、policy、治理和 workflow 完全等价。只对这一增量独立重放,不重复未变化的业务测试。
精确命令:
```text
RECEIPT=/tmp/iam-i1-dev-final-independent-metadata-v2.json CMD='git diff --check a8c42d9a59fcd355a9c9d7ee3e0ed5b6742380fd..19b02b3cad9ff9ff19f6f7dbd04bfb0b11293f3f && git diff --exit-code a8c42d9a59fcd355a9c9d7ee3e0ed5b6742380fd..19b02b3cad9ff9ff19f6f7dbd04bfb0b11293f3f -- . ":(exclude).task"' make evidence
```
完整 SELF 收据:`/tmp/iam-i1-dev-final-independent-metadata-v2.json`;exit=0;receipt_sha256=`0c92b8806e6bc9b4d446d42ff459339fdfe88eca35fe94df6a626883d1c90127`。before/after head 均为 19b02b3,检查期间工作树 clean。
M1 闭合:实施者将当前任务卡第 12 行标为原交付模式快照,在第 13、15 行明确当前投影 r1 修复的连续实施/验证/Review/当前 HEAD CI/合入及停止边界。第 74、90 行的旧结果/合入/清理节已标为原阶段 6 快照,并指向末尾当前记录。旧对象和原始结果没有被改写。本人检查固定新对象,确认这就是初审建议的语义,未参与修订。
第 936–940 行及新增 artifacts 保存了 RDM PR360 fast-forward-only 实际合入结果与精确 head/merge_sha `9eb8c616ef5f4431fb2dd83a3f5267bbaa725af6`;归档 GATE 记录中的 run2997 与 job4517 build-and-test 均 completed/success,head 相符。记录保留平台执行身份/workflow/来源,同时本地 evidence 仍为 SELF,不把包装摘要提升为 GATE。本人重核这些归档字段的一致性,没有新远端 API 运行或 RDM 源码 Review。旧“运行中”状态明确为当时历史,不与当前结果混用。
新增 Dev make test 原始收据为 `.task/artifacts/iam-i1-stage8/dev-final-composition-test.json`,command=make test、exit=0、source=SELF、receipt_sha256=`a08bc3d477d4d9bd33a37412685cc9f5372a39acaf58e02f1796c51903fa900e`,before/after head 都是 a8c42d9。执行中任务卡存在元数据修改,原始 dirty 状态及摘要保留;当前记录也明示此点,没有冒称整棵工作树完全固定。收据与最终 metadata 的业务/组件等价关系由本次 diff 重放辅助核验;它仍不替代 19b02b3 或后续最终实际 HEAD 的全部必需 CI。
RDM 闭合 PR362 为独立 metadata 对象,当前卡写仍待其 Review/CI;没有提前宣称已合入。Dev 合入与 RDM 主 PR/闭合 PR 分开记录。部署、生产迁移、U3–U9 和工作区清理仍没有完成或新增授权声明。
**最终结论:上述固定 Dev diff 的元数据、Documents 组合及规范符合性 Review 通过,Critical 0、Important 0、Minor 0。** 原 Minor 的发现与闭合保留。当前 Review scope 为本次 metadata/文档/组件组合,不承担 RDM 源码审查或替代当前 HEAD CI。交付者仍须核验最新 base/head、最终实际 HEAD 的 test/test-pg/svc-realcombo、执行身份与运行链接、平台 stale guard 及 PR 准入,之后才能声明 Dev 已真实合入。继续追加 metadata 会形成新 HEAD,须按影响核对等价并取得该 HEAD 的必需 CI。
File diff suppressed because one or more lines are too long
@@ -0,0 +1,89 @@
# IAM I1 阶段 8 独立文档 Review
日期:2026-10-13 UTC。审阅者:`/root/i1_stage8_docs_review`,native Codex 独立审阅智能体。未参与本次实现或修订;未修改任何仓库;整改由实施者完成,本人复审。此次为指定 Documents diff 的独立文档审阅,覆盖需求符合性、一致性、范围、公开契约、证据与维护性;不是完整业务源码 Review、受信 CI 或平台非作者账号批准。
结论:**Documents 文档 Review 通过;当前 Critical 0、Important 0、Minor 0,全部已记录问题闭合。** 此结论只适用于下列固定 diff,不声明其他仓当前源码、PR、CI、合入或部署已完成。
## 固定对象
- Documents 工作区:`/home/weichen/projects/Agent-System-Dev-wt-feature-iam-i1-permission-boundaries/modules/documents`。
- base:`129cc3579d9c9e3edfb46c99270d65f3e1dad0a0`。
- 初审 head:`b4a2573742d1377d432704f0114832d0af5a3c7b`。
- 首轮整改复审 head:`30bceb748fdb01f56ef622c6bc490b2115f62725`。
- 最终复审/本结论 head:`ba9d76426ded94b0ab760b25201c3a389541b4ee`。
- 正式审阅 diff:`129cc3579d9c9e3edfb46c99270d65f3e1dad0a0...ba9d76426ded94b0ab760b25201c3a389541b4ee`,5 个文件:批准方案、I1 合同、阶段 6 实施记录、阶段 7 验收记录、INDEX。
- 整改 diff:`b4a2573742d1377d432704f0114832d0af5a3c7b...30bceb748fdb01f56ef622c6bc490b2115f62725`,仅修改合同页首授权状态与 INDEX 的 IAM 状态文字。没有改动权限语义或批准方案。
- 最后一项整改 diff:`30bceb748fdb01f56ef622c6bc490b2115f62725...ba9d76426ded94b0ab760b25201c3a389541b4ee`,仅合同第 108–109 行两句,明确 Backend 原快照与后续组合须重新固定核验。
- 批准原文文件 SHA256:`39b8e9a6e078dc509bd80118c1807ce6ed23e4466e5902b51f4bfa255d55c0a1`;独立重放三次均核验保持此摘要。原方案的草案状态是保存的历史批准对象,不要求改写它而破坏摘要。
## 先重放、后阅读作者材料
在读取作者验收/自检材料及任务卡收据之前,已独立运行最小重放集。命令和完整脱敏输出由 Dev 的现代 evidence.py 保存,来源均为 **SELF**;独立审阅身份不把工具来源提升为 GATE 或 REPLAY。
初审命令:
```text
RECEIPT=/tmp/iam-i1-stage8-independent-docs-review.json CMD='git -C /home/weichen/projects/Agent-System-Dev-wt-feature-iam-i1-permission-boundaries/modules/documents diff --check 129cc3579d9c9e3edfb46c99270d65f3e1dad0a0...b4a2573742d1377d432704f0114832d0af5a3c7b && python3 /tmp/iam-i1-u1-doccheck.py' python3 /home/weichen/projects/Agent-System-Dev-wt-feature-iam-i1-permission-boundaries/scripts/evidence.py
```
初审收据:`/tmp/iam-i1-stage8-independent-docs-review.json`;exit=0;receipt_sha256=`3604658204d53c94e905b7f5281c7f1ebb0507c6b5ffc6fe12923f6ff54ba8e6`。
复审命令:
```text
RECEIPT=/tmp/iam-i1-stage8-independent-docs-review-v2.json CMD='git -C /home/weichen/projects/Agent-System-Dev-wt-feature-iam-i1-permission-boundaries/modules/documents diff --check 129cc3579d9c9e3edfb46c99270d65f3e1dad0a0...30bceb748fdb01f56ef622c6bc490b2115f62725 && python3 /tmp/iam-i1-u1-doccheck.py' python3 /home/weichen/projects/Agent-System-Dev-wt-feature-iam-i1-permission-boundaries/scripts/evidence.py
```
复审收据:`/tmp/iam-i1-stage8-independent-docs-review-v2.json`;exit=0;receipt_sha256=`1a77cf93f374019a86a81a62bde91b0c21c362a555f27e577de476a8e113e290`。
最终复审命令:
```text
RECEIPT=/tmp/iam-i1-stage8-independent-docs-review-v3.json CMD='git -C /home/weichen/projects/Agent-System-Dev-wt-feature-iam-i1-permission-boundaries/modules/documents diff --check 129cc3579d9c9e3edfb46c99270d65f3e1dad0a0...ba9d76426ded94b0ab760b25201c3a389541b4ee && python3 /tmp/iam-i1-u1-doccheck.py' python3 /home/weichen/projects/Agent-System-Dev-wt-feature-iam-i1-permission-boundaries/scripts/evidence.py
```
最终复审收据:`/tmp/iam-i1-stage8-independent-docs-review-v3.json`;exit=0;receipt_sha256=`6a39ff76afb42b5c9a4f91b38616db713ff6195f95a9f53f56c4801a7c36681a`。再次通过 diff 空白、批准原文摘要、87 个链接目标、R1–R20 与 17 个稳定动作及其余 doccheck 判据。
evidence 的执行 cwd 是 Dev;三次收据记录 Dev HEAD `4292fe3c6d9e7b2e874b137f72b8433756ecde1f` 及组合状态。被审 Documents 的完整 SHA 则明确固定在命令 diff 参数中,并在读取前后以 git rev-parse 和 clean status 核对。不能将 Dev HEAD 当成 Documents HEAD。
最小重放覆盖差异空白、批准原文摘要、当前本地链接目标、R1–R20 各一次追溯、17 个稳定 action/scope、公开申请四要素、I1 legacy 与后续多职边界、RDM 三份规范修订入口及固定 RDM R0 的 08 核心 R1–R5 保持。脚本读取 RDM 的冻结规范文档,不修改该仓;它不验证 Markdown anchor、平台链接身份或业务行为。
## 需求与范围审阅
- 批准方案 R2/R10、KTD4 与 U4/U5 明确一职多人、一人多职、项目明确选用 binding,并要求完整路径判定,不拼接不同角色的 grant 与资源范围。I1 合同第 15、21、24–27、77–92、174 行保持这一设计,将当前单绑定兼容与后续最终模型分开,没有以 legacy 实现取代用户的多职裁定。
- 原方案 R7、KTD3/KTD4 与 I1 合同第 14、28–29、60–62、96–105、135 行一致:系统管理员管理系统主数据,管理员身份和 Host.IsAdmin 不隐含业务项目、正文、原件、草稿或审计访问。独立 audit.read 与当前完整 doc.read 的聚合兼容限制有明示。
- 17 个 I1 稳定动作保持系统/项目 scope,旧入口有映射,未知 ID 不隐式变成别名。系统动作不可由 project.settings 或项目覆盖获得;创建者仍先验平台与角色 cap。
- IAM-P/D/R/C 及补充 IAM-H/K 均标为公开申请或集成缺口,规定提供者/消费者版本、失败拒绝与兼容方式,没有把保存合同当成导出实现。完整资料/目录/恢复、多绑定、项目选用、资源职责、UI、epoch 与迁移继续归属 U3–U9。
- RDM adoption 逐项维护 R1–R20 到既有 UR/SR 和后续单元的追溯;原 ID 与 08 核心规则保留。本 Review 不把映射完整等同于 R1–R20 行为关闭。
## 问题及闭合
### Important D1 — 授权终点的当前表述与阶段 7 已通过冲突(已闭合)
初审位置:`docs/proposals/2026-10-13-iam-i1-permission-contract.md:6`,在原本地实施终点的基础上裸写“未授权推送、PR、合入”,但 `2026-10-13-iam-i1-acceptance.md:3–5` 已记录用户阶段 7 确认并按 policy 进入 8–9。继续原表述会使后续执行者从两个当前入口读到相冲突的交付边界。
实施者在 `30bceb748fdb01f56ef622c6bc490b2115f62725` 将原终点明确为历史,并关联阶段 6/7 的通过和当前 Review/PR/CI/合入责任,同时保留迁移、部署、清理和后续增量未授权。本人检查整改 diff 与复审收据,确认闭合;无需改写批准方案原文。
### Minor D2 — INDEX 仍显示阶段 7 待验收(已闭合)
初审位置:`docs/proposals/INDEX.md:12–13`。该导航把已通过的阶段 7 显示为待用户验收,容易导致重复请求批准和错误恢复阶段。
实施者在同一复审提交更新为实施评审及阶段 7 已通过、当前进入 8–9;本人复审确认与 acceptance 第 3–5 行一致。闭合。
### Minor D3 — 公开能力表应注明其历史固定提供者(已闭合)
位置:`docs/proposals/2026-10-13-iam-i1-permission-contract.md:108–115,121–123`。2.11.0、owner+valid 等现有能力叙述对应 I1 原固定 Backend `0f192a481388184df39f81c28b0587a7e16ec3ca`;它与阶段 7 固定组合相符。当前同步中的 Dev 提供者已前进到 2.12,目录已有额外 Name/Search,因此“当前”一词容易被未来消费者读成所有组合的即时事实。
建议后续组合状态收口时在此表标明“原 I1 合同的 Backend 0f192a48 快照”,并把新的固定组合能力放在当前任务记录,继续分别核验提供者与消费者。该差异不改变 I1 规则、不要求扩大 IAM-D 或启动 U3,也不构成当前文档 Review 阻断。本人未对正在变化的 RDM 工作树作固定业务结论。
实施者在 `ba9d76426ded94b0ab760b25201c3a389541b4ee` 按此建议修订合同第 108–109 行,明确原 Backend 完整 SHA、2.11 为原快照且不代表后续主干能力,同步组合仍须实际固定核验。本人独立检查相对首轮复审对象的 diff,确认仅此两句;最终完整最小重放通过,原文摘要不变,D3 闭合。未参与修订。
## 证据和诚实边界
重放之后核对了阶段 7 引用的 4 个完整作者/前期审阅收据:Dev `ea7b7758…`、RDM `6e684a90…`、独立 focused `6bbb0f74…`、独立 HTTP `c7edde36…`,其命令、exit=0、before/after head 与报告列出的对应历史对象一致,均保留 SELF。报告承认编译/夹具/确认流失败和零用例不能计为业务通过。
阶段 6 页第 73 行把旧测试和缺项表明示为当时快照,阶段 7 页明示其固定对象、用户决定、全产品浏览器与真实模型对照缺项,以及 PostgreSQL、多实例、epoch、恢复、多职和完整三权的后续归属;没有声称部署、生产数据验收或完整 R1–R20 已关闭。
此审阅只重新执行文档最小检查;没有重新运行业务 make test、HTTP、浏览器或真实模型,因此不以作者历史收据替代这些路径的当前重放。另一个指定源码审阅及最终组合验证负责其对应结论。平台所需非作者账号批准、当前 HEAD 的可信 CI、最新 base/head、冲突和 PR 准入仍须由交付者独立核验;本 Review 不能替代这些条件。
就上述固定 Documents diff 而言,全部 Important/Minor 已闭合,权限设计/需求追溯和证据边界一致,可进入下一交付门禁。base/head 或规范语义变化时按影响复审。
@@ -0,0 +1 @@
{"pr": 98, "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/98", "head": "ba9d76426ded94b0ab760b25201c3a389541b4ee", "merge_sha": "3cf263962bd106529ee0531c8415cb16eecedfe3", "base": "main", "merged_by": "weichen", "merged_at": "2026-10-13T15:39:54Z"}
@@ -0,0 +1 @@
{"pr": 98, "state": "open", "merged": false, "base": "129cc3579d9c9e3edfb46c99270d65f3e1dad0a0", "head": "ba9d76426ded94b0ab760b25201c3a389541b4ee", "mergeable": true, "draft": false, "status": {"http_status": 200, "data": {"state": "pending", "sha": "ba9d76426ded94b0ab760b25201c3a389541b4ee", "total_count": 0, "statuses": null, "repository": {"id": 19, "owner": {"id": 1, "login": "weichen", "login_name": "", "source_id": 0, "full_name": "", "email": "weichen@home.local", "avatar_url": "https://git-home.u1680832.nyat.app:30319/avatars/51e6cd4a83883a2910632d26ebc6d665", "html_url": "https://git-home.u1680832.nyat.app:30319/weichen", "language": "", "is_admin": false, "last_login": "0001-01-01T00:00:00Z", "created": "2026-09-06T14:39:07Z", "restricted": false, "active": false, "prohibit_login": false, "location": "", "website": "", "description": "", "visibility": "public", "followers_count": 0, "following_count": 0, "starred_repos_count": 0, "username": "weichen"}, "name": "Agent-System-Documents", "full_name": "weichen/Agent-System-Documents", "description": "系统文档与过程记录仓:架构决策、方案与验证记录、插件开发指南;不含产品代码。", "empty": false, "private": false, "fork": false, "template": false, "mirror": false, "size": 1447, "language": "", "languages_url": "https://git-panel.u1680832.nyat.app:30319/api/v1/repos/weichen/Agent-System-Documents/languages", "html_url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents", "url": "https://git-panel.u1680832.nyat.app:30319/api/v1/repos/weichen/Agent-System-Documents", "link": "", "ssh_url": "ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Documents.git", "clone_url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents.git", "original_url": "", "website": "", "stars_count": 0, "forks_count": 0, "watchers_count": 1, "branch_count": 76, "open_issues_count": 0, "open_pr_counter": 3, "release_counter": 0, "default_branch": "main", "archived": false, "created_at": "2026-09-28T07:07:06Z", "updated_at": "2026-10-13T15:39:22Z", "archived_at": "1970-01-01T00:00:00Z", "permissions": {"admin": true, "push": true, "pull": true}, "has_code": true, "has_issues": true, "internal_tracker": {"enable_time_tracker": true, "allow_only_contributors_to_track_time": true, "enable_issue_dependencies": true}, "has_wiki": true, "has_pull_requests": true, "has_projects": true, "projects_mode": "all", "has_releases": true, "has_packages": true, "has_actions": true, "ignore_whitespace_conflicts": false, "allow_merge_commits": true, "allow_rebase": true, "allow_rebase_explicit": true, "allow_squash_merge": true, "allow_fast_forward_only_merge": true, "allow_merge_update": true, "allow_rebase_update": true, "allow_manual_merge": false, "autodetect_manual_merge": false, "default_delete_branch_after_merge": false, "default_merge_style": "merge", "default_update_style": "merge", "default_allow_maintainer_edit": true, "avatar_url": "", "internal": false, "mirror_interval": "", "object_format_name": "sha1", "mirror_updated": "0001-01-01T00:00:00Z", "mirror_last_sync_at": "0001-01-01T00:00:00Z", "topics": [], "licenses": []}, "commit_url": "https://git-panel.u1680832.nyat.app:30319/api/v1/repos/weichen/Agent-System-Documents/commits/ba9d76426ded94b0ab760b25201c3a389541b4ee", "url": "https://git-panel.u1680832.nyat.app:30319/api/v1/repos/weichen/Agent-System-Documents/commits/ba9d76426ded94b0ab760b25201c3a389541b4ee/status"}}, "protection": {"http_status": 200, "data": {"branch_name": "main", "rule_name": "main", "priority": 1, "enable_push": false, "enable_push_whitelist": false, "push_whitelist_usernames": [], "push_whitelist_teams": [], "push_whitelist_deploy_keys": false, "enable_force_push": false, "enable_force_push_allowlist": false, "force_push_allowlist_usernames": [], "force_push_allowlist_teams": [], "force_push_allowlist_deploy_keys": false, "enable_merge_whitelist": false, "merge_whitelist_usernames": [], "merge_whitelist_teams": [], "enable_bypass_allowlist": false, "bypass_allowlist_usernames": [], "bypass_allowlist_teams": [], "enable_status_check": false, "status_check_contexts": null, "required_approvals": 0, "enable_approvals_whitelist": false, "approvals_whitelist_username": [], "approvals_whitelist_teams": [], "block_on_rejected_reviews": false, "block_on_official_review_requests": false, "block_on_outdated_branch": true, "dismiss_stale_approvals": false, "ignore_stale_approvals": false, "require_signed_commits": false, "protected_file_patterns": "", "unprotected_file_patterns": "", "block_admin_merge_override": false, "created_at": "2026-09-30T03:46:04Z", "updated_at": "2026-09-30T03:46:04Z"}}}
@@ -0,0 +1 @@
{"http_status": 200, "data": null}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,65 @@
# IAM I1 宿主改名投影合同补充:独立文档 Review
日期:2026-10-13 UTC。审阅者:`/root/i1_stage8_docs_review`,native Codex 独立审阅智能体。未参与 §8 编制或 RDM 实现,未修改仓库,没有 Git mutation、平台批准或 pins 操作。此任务只审 Documents 的指定补充 diff。
**结论:文档语义 Review 通过,Critical 0、Important 0、Minor 0。** §8 与批准的 r1 修订对象一致,没有把保存合同等同于实现、测试或运行通过。文档合入仍等待来源链接可访问性验证,以及交付者对最新 base/head、当前 HEAD CI 和平台准入的核验。
## 固定对象
- Documents 工作区:`/home/weichen/projects/Agent-System-Dev-wt-feature-iam-i1-permission-boundaries/modules/documents`。
- branch:`feature/iam-i1-projection-contract`。
- base:`3cf263962bd106529ee0531c8415cb16eecedfe3`。
- head:`1f3bd54cfba7518bf5d52cbef3d52a03743513bd`。
- 审阅 diff:`3cf263962bd106529ee0531c8415cb16eecedfe3...1f3bd54cfba7518bf5d52cbef3d52a03743513bd`;仅 `docs/proposals/2026-10-13-iam-i1-permission-contract.md` 第 183–193 行新增 §8,其余文本与 pins 不变。
- 批准来源对象:RDM `4ee4eb99a95460d6660f05a67181357b67e2e956:docs/proposals/2026-10-13-iam-i1-host-projection-amendment.md`。
- 来源原文 SHA256:`3eee5714cce974ce13229b3e184bc3aa763a5e0819fdf7dcf088dafe68b1ed2a`,以本地 Git 该完整提交的 blob 独立计算,与 §8 完全一致。
- 原 IAM 统一方案文件摘要仍为 `39b8e9a6e078dc509bd80118c1807ce6ed23e4466e5902b51f4bfa255d55c0a1`。
批准来源提交页首仍为“待用户审阅”,属于当时完整原文快照;当前 RDM 主记录页首已另记本会话的明确批准、原文摘要和“实施与验证正在进行”。§8 使用完整原批准对象及摘要,没有由旧页首错误推出修订尚未批准,也没有静默改写该批准快照。用户批准依据来自本任务授权及当前批准记录;本 Review 不代替用户或平台账号签名。
## 独立最小重放(先于作者材料)
先以固定 Documents 完整 SHA 执行 diff 空白检查与 doccheck,再读取批准提案正文及作者材料。现代 evidence.py 的执行 cwd 在 Dev,完整脱敏命令/输出与对象信息位于下列收据;来源均为 **SELF**,不会提升成 GATE 或 REPLAY。
```text
RECEIPT=/tmp/iam-i1-projection-docs-review.json CMD='git -C /home/weichen/projects/Agent-System-Dev-wt-feature-iam-i1-permission-boundaries/modules/documents diff --check 3cf263962bd106529ee0531c8415cb16eecedfe3...1f3bd54cfba7518bf5d52cbef3d52a03743513bd && python3 /tmp/iam-i1-u1-doccheck.py' python3 /home/weichen/projects/Agent-System-Dev-wt-feature-iam-i1-permission-boundaries/scripts/evidence.py
```
检查收据:`/tmp/iam-i1-projection-docs-review.json`,exit=0,receipt_sha256=`840e780179f411a0061f55d87cd85d930111bda47576e3dc37eea9a6fc7c2c7c`。
收据父 Dev before/after 均为 `eca92e99207ca054f96e502f5f5969b02c26da51`;submodules 中 Documents before/after 均明确为 `1f3bd54cfba7518bf5d52cbef3d52a03743513bd`。父 SHA 不是 Documents SHA,审阅 diff 对象已另行固定。Documents 检查前后 HEAD 相同且工作树 clean。
最小集覆盖 diff 空白、原统一方案摘要、87 个当前本地链接目标、R1–R20 一次追溯、17 个稳定 action/scope、扩展申请四要素、legacy 与多职边界、冻结 RDM 三份规范入口及固定初始 RDM 08 核心规则。全部通过;脚本不验证新增 HTTPS 链接的远端可访问性,也不执行业务路径。
另以本地 Git 完整来源提交计算批准修订原文摘要,并通过 evidence 保存。实际命令:
```text
python3 -c 'import hashlib,subprocess; p="docs/proposals/2026-10-13-iam-i1-host-projection-amendment.md"; d=hashlib.sha256(subprocess.check_output(["git","-C","/home/weichen/projects/Agent-System-RDM-wt-feature-iam-i1-permission-boundaries","show","4ee4eb99a95460d6660f05a67181357b67e2e956:"+p])).hexdigest(); print("Approved projection snapshot SHA256:",d); assert d=="3eee5714cce974ce13229b3e184bc3aa763a5e0819fdf7dcf088dafe68b1ed2a"'
```
摘要收据:`/tmp/iam-i1-projection-approved-snapshot-review.json`,exit=0,receipt_sha256=`bbf6c21fefaa5018942192570e5692bf3b8afbe3abbda1f3f2bef6e93d2815ab`。原文 blob 与期望摘要一致;此记录只证明本地原文身份,不证明远端已经推送。
## 需求与语义核对
| 合同位置 | 批准来源位置 | 结论 |
|---|---|---|
| §8 第 185 行,唯一来源及批准摘要 | r1 第 1–4、75–78 行与当前批准状态记录 | 原文来源固定,当前批准与历史快照分开;正文维护在 RDM 一处 |
| 第 187 行,实际 actor 授权与单目标物理投影 | r1 第 23–33、35–37 行 | 实际认证 actor 保持请求身份,当前 project.settings/cap/关系/状态为权威;创建者 scoped Host 仅执行已核实 hostID 的改名,不重新授权或向其他动作传递 |
| 第 187 行,无 doc.read 的合法管理与 Native work 边界 | r1 第 35–37、64、70 行 | 管理设置资格可独立授予;投影元数据查找不扩大正文、原件、私聊、私稿或 Native work 的访问 |
| 第 189 行,同主体持久意图与受限恢复 | r1 第 28、33、39–44、69 行 | 同事务持久意图固定 actor、域项目、host、创建者、目标与版本;恢复重验当前实际 actor,只恢复已证实同目标;未知 failed/create 和归属变化拒绝,非 ready 的读/work不开放 |
| 第 191 行,两入口 DTO、脱敏与审计身份 | r1 第 30、32、56、64、70 行 | 原请求 Host 负责审计实际操作者;命令与 HTTP 保持各自 DTO,禁止 creator raw settings 或投影句柄外泄;插件来源 Actor 与业务 Owner/evidence.actor 明确区分 |
| 第 193 行,公开边界与验证出口 | r1 第 23、44、51、56–71 行 | 不新增 Backend 公开符号,不放宽 owner-only 规则,不改 pins;最终验收仍要求合法、越权、撤权、归属、恢复、两入口及真实 HTTP,用文档保存不能关闭 I1 |
第 191 行的审计字段解释还核对了固定 Backend `5d5fc9891c0eb8994545ccb8b740535d9b99fb0e` 的 `internal/app/hostcaps.go:273–279`:Audit 写入 Owner=h.owner、Actor=plugin:pluginID,并保留 evidence。该源码证据解释字段角色;它不是当前 RDM 接线已经正确或审计运行通过的声明。
§8 为摘要采纳,并明确引用完整批准正文;当前资格包括具体成员关系、角色有效态、动作定义、平台/角色 cap、覆盖与生命周期,最终写入前重验等完整条件仍以该批准正文和原合同共同约束。不要求在摘要重复全部实现步骤,也没有缩减这些条件。
## Findings 和合入 readiness
Critical:无。Important:无。Minor:无。无需改写原批准方案或扩大公开接口范围。
**文档 Review readiness:PASS(上述固定 diff;本地检查来源 SELF)。**
**跨仓来源 URL 可访问性:NOT_VERIFIED。** 第 185 行的固定 RDM 来源提交目前没有本轮远端访问验证收据。本地 blob 核验不替代 HTTPS/平台可访问性。交付者应在包含该提交的 RDM 最终分支正式推送后验证实际 URL,再决定 Documents 合入;不能仅因链接格式合法计为链接通过。
**RDM 实现、当前产品运行验收、HTTP、业务测试、受信 CI、PR 与合入:本 Review 未重放或核验。** RDM 正在实施;此文档 Review 不声称修复或产品行为已经完成。最终源码 Review、组合验证、平台账号批准和 CI 仍各自承担原门禁。后续 base/head 或 §8 语义变化须按影响复审。
@@ -0,0 +1 @@
{"pr": 99, "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/99", "head": "1f3bd54cfba7518bf5d52cbef3d52a03743513bd", "merge_sha": "a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c", "merged_by": "weichen", "merged_at": "2026-10-13T16:24:57Z"}
@@ -0,0 +1 @@
{"pr": 99, "base": "3cf263962bd106529ee0531c8415cb16eecedfe3", "head": "1f3bd54cfba7518bf5d52cbef3d52a03743513bd", "mergeable": true, "required_approvals": 0, "stale_guard": true, "ci": "N/A: no workflow or required context", "source_verified": {"api_path": "/contents/docs/proposals/2026-10-13-iam-i1-host-projection-amendment.md?ref=4ee4eb99a95460d6660f05a67181357b67e2e956", "http_status": 200, "html_url": "https://git-panel.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/4ee4eb99a95460d6660f05a67181357b67e2e956/docs/proposals/2026-10-13-iam-i1-host-projection-amendment.md", "sha256": "3eee5714cce974ce13229b3e184bc3aa763a5e0819fdf7dcf088dafe68b1ed2a", "verified_access": "authenticated repository owner API"}}
@@ -0,0 +1 @@
{"api_path": "/contents/docs/proposals/2026-10-13-iam-i1-host-projection-amendment.md?ref=4ee4eb99a95460d6660f05a67181357b67e2e956", "http_status": 200, "html_url": "https://git-panel.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/4ee4eb99a95460d6660f05a67181357b67e2e956/docs/proposals/2026-10-13-iam-i1-host-projection-amendment.md", "sha256": "3eee5714cce974ce13229b3e184bc3aa763a5e0819fdf7dcf088dafe68b1ed2a", "verified_access": "authenticated repository owner API"}
@@ -0,0 +1 @@
{"pr": 360, "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/360", "head": "9eb8c616ef5f4431fb2dd83a3f5267bbaa725af6", "merge_sha": "9eb8c616ef5f4431fb2dd83a3f5267bbaa725af6", "method": "fast-forward-only", "merged_by": "weichen", "merged_at": "2026-10-13T16:26:51Z"}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"http_status": 200, "data": null}
File diff suppressed because one or more lines are too long
+4
View File
@@ -12,6 +12,10 @@
目录中的既有文档不因被收录而自动成为已批准规划。记录、任务关联及收尾建议按
[交付规范的长期方向与任务衔接](policy/delivery.md#长期方向与任务衔接) 执行。
- [用户、职位角色与分层权限统一方案 r1](modules/documents/docs/proposals/2026-10-13-identity-role-permission-plan.md):用户已批准,首批仅 I1(U1–U2);
[权限合同](modules/documents/docs/proposals/2026-10-13-iam-i1-permission-contract.md) 冻结边界,
[I1 实施候选与评审记录](modules/documents/docs/proposals/2026-10-13-iam-i1-review.md) 维护实际结果与剩余限制;后续单元须另行授权。
- [快慢通道展示与动态工作摘要方案 r1.1](modules/documents/docs/proposals/2026-10-12-fast-slow-channel-display.md):
对话即时答复、后台动态发现与来源、四层阅读、真实状态、并发/恢复及 U1–U4;
2026-10-12 方案设计已批准(阶段 1–4),首批仅 U1;