Record the two-trees partial close and renderer records #116

Merged
weichen merged 37 commits from feature/rdm-two-trees-latest-templates into main 2026-10-19 07:51:30 +00:00
36 changed files with 6216 additions and 0 deletions
Showing only changes of commit bc1d1aa43b - Show all commits
@@ -0,0 +1,118 @@
# 最新模板驱动的两树一网、成员工作上下文与完整可读审计
修订:r5;更新时间:2026-10-14T11:28:55.318650+08:00;需求负责人:用户;记录/准备:Codex。
当前阶段:**阶段5实施与测试计划r1已批准;阶段6按增量实施与自检**。manual逐阶段评审。E1保真判据未通过;业务实现及运行验收NOT_RUN。
## 目标与成功标准
根据最新`.templates`模板及`.tmp`材料补全RDM两树一网:细致完整的内容结构、每项目可扩展的节点与要求、随资料和进度提出调整并经人确认生效;同项目成员工作时自动使用当前权限内的项目依据;完整记录人物、时间、动作、内容、结果、依据和影响,以人可读的摘要与结构化详情展示审计。
成功须同时具备44份新模板的可核查接入、动态递归结构与原子版本化确认、成员真实工作上下文、完整操作留痕/追溯及可读审计。保留全部28项已确认子需求;当前目录或模板条目数量不能代替真实能力与验收。准确来源计数和差距见原对象,不缩成标题导入、只处理部分模板或仅翻译op码。
## 唯一当前记录与原对象
- [阶段1需求拆解r1原对象](../records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-requirements-r1.md):用户选择“确认需求,继续按阶段人工评审”;SHA256 `60fd0296840a74982ae65cc4bd1e6a810ace5109e103e8408a94d4db0573bad7`。
- [阶段2需求评估r1及E1试验提案原对象](../records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage2-evaluation-r1.md):用户“批准”;SHA256 `61733945c077ae6b8f8488ee5a0e41337d7e4a019854dc647e93fecbb4b72178`。原对象保留批准前文字,当前结论在本记录更新。
- [阶段3需求与验收条件r1](../records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage3-requirements-r1.md):28项完整范围、优先级、依赖及可判定验收,用户已确认;需求主表在Dev任务卡并逐项引用本稿。
- [阶段4方案设计r1](../records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage4-design-r1.md):推荐路线、共享DHF合同、项目结构/版本、X1/X2扩展、完整可读审计及恢复/验证;用户已批准。SHA256 `568aa26f6b2276f786109e2298b3ae36c6c14d3be5a54e0dfc95bf1b2db4603b`。
- [阶段5实施与测试计划r1](../records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage5-implementation-test-plan-r1.md):W0–W13跨仓分工、依赖、测试环境/费用上限和全部28项证据映射;用户已批准。SHA256 `b755ef629fae37854b8d0bc344b3f14c6933e4455be74244b9821a6d71b64ebe`。
- [E1结果报告r1](/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/e1-20261014-091421/REPORT-r1.md):原件保全;解析路径部分可行,自动保真未通过;全部原始产物/完整SELF收据按批准范围留源码外,未发布为正式模板。
- [来源、固定对象与完整SELF收据](../records/2026-10-14-rdm-two-trees-latest-templates/README.md):原字节保留,历史状态不冒充当前事实。
原对象正文只在records各维护一份;本文件维护当前目标、批准、推进与接续状态。任务卡和项目入口引用本主记录,不另维护另一套方案。
## 用户确认与授权
| 决策/阶段 | 对象与结论 | 确认人及依据 | 当前有效范围 |
|---|---|---|---|
| DYN-01 | 提出变更,确认后应用;已确认 | 用户;本聊天call_8724a18c54b243c5b0e6edfb0c1d50b2第0项答复 | 所有动态结构候选确认后才生效;受控文档仍遵守三权 |
| 阶段1 | 需求拆解r1,通过 | 用户;call_22243aaf29ae4ad19c4322a1d7fd8b0f第0项答复;批准对象hash见上 | 确认目标、场景、28项子需求;继续按阶段人工评审 |
| 工作区 | 原负责人先收尾并同步 | 用户;同一call第1项答复 | 本任务没有接管旧现场;待其完成后建立独立任务工作区 |
| 阶段2/E1范围 | 通过/批准执行 | 用户;本聊天原话“批准”,承接阶段2r1及E1评审请求;2026-10-14,消息时间仅记录日期精度 | 按第8节运行源码外E1,试验后形成阶段3需求表;不是阶段4–7连续推进授权 |
| E1结果/阶段3 | 通过需求及风险处理边界 | 用户;本聊天call_87e7dc7218214a27a6a6d4911a44a387第0项:“确认阶段3,进入方案设计(推荐)”;2026-10-14,日期精度 | 确认28项及原件保全/候选/未解决不发布;授权阶段4设计,不代表E1保真通过或实施获批 |
| 阶段4 | r1通过 | 用户;本聊天call_69f62a2617e74bfd93b75a8bef7d9809第0项:“批准方案,进入实施计划(推荐)”;2026-10-14,日期精度 | 批准固定方案及剩余风险处理;授权形成阶段5计划,不授权业务实现 |
| 阶段5 | r1通过 | 用户;本聊天call_6e90e72546514d5480737f686898f013第0项:“批准计划,进入实施(推荐)”;2026-10-14,日期精度 | 确认W0–W13、DHF U2–U6原owner续办及模型48次/300,000 tokens/人民币150元任一上限;仅隔离副本迁移演练,进入阶段6 |
| 阶段6 | 增量A实施中 | W0–W4先形成可审查代码/测试;W6/W9可在独立分支并行准备 | 每增量用户确认实现产物,必要设计变化重审 |
本次记录时间见页首;用户确认的消息引用是审批依据,不由本地SELF命令代签人工或非作者Review。
## 内容范围与职责
1. 模板/文档内容:44份DOCX/DOC逐文件、章节/字段/表格/重复块/附件及适用性;原件与模板版本/hash、文档实例和历史版分开。E1已验证14份旧DOC可转换及结构提取,但分页/图形顺序/修订/字体等保真仍未关闭;转换稿仅候选。
2. 两树一网:资料切片、结论、递归文档节点、项目阶段/主题/工作事项扩展、结构提案与确认、稳定ID、CAS/幂等/原子事件/重放、受控版本关系和直接/间接影响。
3. 工作上下文:普通工作自动取得当前项目任务要求、已确认结论、授权共享资料和可读正文;固定实际依据和版本,预算内渐进读取,撤权/恢复/切换时刷新;不以手动@knowledge代替。
4. 审计/显示:成功事件与失败尝试区分,时间/人物/操作/内容前后/来源/结果/影响及实际任务关联完整;人可读摘要、字段差异、对象路径、影响清单、筛选、完整归组/历史及权限内证据跳转。
5. 验证:全部28项到当前对象证据;44模板对照、并发/失败/重启/撤权、两项目两成员真实模型与浏览器、精确pins/当前HEAD CI。所有业务验证目前NOT_RUN。
RDM保有领域、schema/事件与业务权限;Backend仅补必要通用公开能力,Frontend/UI消费已授权的读契约和既有设计系统。新增扩展仍须四要素提案,不能导入Backend internal、改写pins内容、绕过IAM或以管理员身份取得业务正文。团队存储架构替换、线上数据操作、部署及tag发布未纳入本阶段授权。
## 准备及在途依赖
- 原共享工作区已恢复干净并包含权威origin/main;本次启动检查返回READY,完整收据由task-start原样导入。Dev R0为`add097d06137c4912a4ed9279e98ca353e4e4cf1`。
- 独立Dev worktree:`feature/rdm-two-trees-latest-templates`;Documents候选分支同名,最初从其origin/main `a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c` 建立;本次恢复已按父仓权威pin快进至 `7bd4e17827d4c7c88647bf3c9199c495b60cb107`。保存阶段记录只代表本地候选,不表示已推送、合入、部署或业务完成。
- 阶段2的7仓main、10相关PR快照及最新复核均保留;审计导出/水位(RDM#301/#307、Dev#488;Frontend#73已合入)和快慢通道工作来源(Backend#193、Frontend#79、Documents#95、Dev#512)按最终主干结果协调复用,不重复起另一套入口。快照不是未来准入证明。
- 关联规划:[原两树审计集成方案](2026-10-11-rdm-two-trees-trace-audit-integration.md)、[模板与对话生成方案](2026-10-11-rdm-template-dialog-generation.md)、[系统项目与私域协作](2026-10-13-system-project-membership.md)。本目标补齐最新模板、动态结构、默认上下文与完整审计,不用旧任务完成状态代替本轮验收。
## 阶段与下一动作
| 阶段 | 状态 | 产物/出口 |
|---|---|---|
| 1需求拆解 | 用户通过 | 固定hash原对象及确认依据 |
| 2需求评估 | 用户通过 | 固定r1原对象及E1范围获批 |
| E1探索试验 | 执行结束,风险处理已获确认;保真仍未通过 | 14份转换成功,原件hash不变;59分54秒内闭合自动环节,保真判据未通过 |
| 3需求表 | r1用户通过 | 全部28项的优先级、依赖、条件和验证方法,明确E1剩余风险 |
| 4方案 | r1用户通过 | 方案SHA256 `568aa26f6b2276f786109e2298b3ae36c6c14d3be5a54e0dfc95bf1b2db4603b`;全部28项映射 |
| 5实施/测试计划 | r1用户通过 | W0–W13、28项映射、44资产和模型预算;SHA256 `b755ef629fae37854b8d0bc344b3f14c6933e4455be74244b9821a6d71b64ebe`;放行阶段6本地实施与隔离测试 |
| 6实施 | 增量A进行中,W0及组件局部代码已提交但未合入 | W0局部SELF通过;W2保留并发RED,W6撤权缺陷修复中,W9跨成员消费未完成;各增量完成后人审 |
| 7正式验收 | NOT_RUN | 固定全目标候选和需求到证据映射,人审出口 |
| 8代码Review、9合入、10收口 | NOT_RUN | 按已批准范围、当前HEAD CI/平台准入及清理授权办理 |
当前按已批准阶段5计划实施:W0机械来源守护当前Dev本地HEAD `38ef548637f426e2e36c33a50ae6b8af8c9da453`,16项SELF定向测试及44项实际目录核对通过;只证明来源身份,0项已发布。W2项目字典保留并发/回滚失败测试,关键顺序修订待评审;W6基座上下文及W9基座审计在独立分支迭代。DHF原工作区owner继续U2–U6并在其任务卡引用本计划;本任务不覆盖其脏现场。阶段6增量A形成后提交人工评审。
当前未决项:E1的保真差异和49字符未定位片段;44份资产逐项语义/格式人工裁定;基座X1/X2真实公开发版、旧数据兼容实测和正式模型/浏览器环境。E1结果是SELF探索证据;局部代码测试不能代替真实模型/浏览器、阶段7验收、当前HEAD CI、合入或部署,这些仍为NOT_RUN。
本轮修订不改阶段1/2原对象字节,不把试验执行成功记为保真通过。已在隔离工作区提交局部代码并执行测试;原DOC/DOCX、真实运行库与服务保持原状。E1临时环境和唯一成果仍保留,尚未执行清理。
## 阶段4调查及恢复记录
- 本次恢复前评审稿未提交,首次precheck拒绝;将本任务两仓文件、patch/hash及stash保存至源码外stage4-resume-backup,再同步权威main。Documents按新pin显式快进,后续task-sync通过;新precheck READY及task-resume收据已原样导入。原稿与上游无路径内容冲突,已逐文件恢复;旧证据保持历史对象范围。
- Dev当前设计基线main为`f00165e8d71e4dc8ba0ceb7dc50c1a8a3deb6d60`,任务合并后HEAD为`279ddf05b180576a70c817fed48371b72b26c089`;R0不变。仅纳入上游已合入文档/治理变化,未推进新的组件组合。
- [阶段4源码及在途快照](../records/2026-10-14-rdm-two-trees-latest-templates/stage4-sources.json):RDM/Backend/Frontend main未变化,Documents#89与Dev#489已合入;相关审计导出、工作发现PR仍开放。DHF专项已有本地U1及E1-R1在途,详见阶段4§2,不把候选或任务叙述当发布/验收证据。
- 方案复用DHF的TemplateAsset/ContentBlock并补齐共同合同;本专项负责项目扩展/实例/动态确认/上下文/审计,阶段5固定依赖及非重叠工作项,不接管其他工作区。
## 阶段5规划状态
- 本计划不改变阶段4已批准对象字节;DHF U1本地候选仍是40 needs-review、4 blocked、0 published。追加E1-R1四份转换稿为候选、人工格式未审核;原E1与本任务E1的输出方法不同,不能互相代签通过。
- 2026-10-14阶段5依赖快照见[记录](../records/2026-10-14-rdm-two-trees-latest-templates/stage5-dependencies.json):Frontend#73已合入其main;其余相关导出与来源PR仍需按交付时最新状态重查。Frontend main当前快照为`5313cfad4e633d0909ed40dcdfa28a11bc1902c0`;此快照不是未来精确组合候选。
- 阶段5计划r1已获用户批准,实施及有上限的模型评测进入其授权范围。是否实际执行、花费及产物仍以独立任务卡/收据为准;本稿不把未来结果写成已通过。
## 阶段6已形成的候选与依据
- [W0逐文件资产对照](../records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage6-w0-template-ledger-r1.md):44/44原件路径、来源Git字节、DHF逻辑ID与类型候选匹配;当前目录44 needs-review、0适用性确认,内容/保真/合同仍待审核。SHA256 `6347ca86c09e00588b202e3a6f0039ac7aec426ed2d64efe5d273ca265b62235`,SELF。
- [X1/X2公开扩展申请](../records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage6-public-extension-requests-r1.md):四要素、可信作用域和兼容/权限负例,Backend独立工作项消费;仅申请/方案记录,尚未发布接口。SHA256 `2afc37801d96d4c73099f0e2a73658b35ec37c0e6bdd793f835c5fca4a4dd137`。
## 阶段6受影响设计待评审
- [X2跨成员已提交业务审计链接修订r1](../records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage6-audit-link-design-adjustment-r1.md):W9发现只凭会话项目会泄露私域或重归属旧操作。建议仅将可信已提交项目事件与宿主行建立不可变链接,再按当前审计/资源权限投影。公开写/读合同改变了阶段4 X2,用户已于本聊天call_bf9116ffe4ff4c5bbc4809a58ab02cbe第0项选择“批准修订,继续跨成员审计(推荐)”;W9可按修订继续实施,但安全owner局部不等于跨成员完整审计。SHA256 `385d9d7570217ddcce9fe60a60c99dc58c9a4875ad790584a724d09a210a6e52`。
- [W2/W4实施顺序修订r1](../records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage6-w2-w4-sequence-adjustment-r1.md):W2的并发字典修订与事务回滚在当前RDM分支保留两条RED;建议将已批准W4事务隔离基础W4a移到W3之前,由W2 owner在同一工作区修复,W3仍等待DHF U1合入,W4提案/真人确认W4b仍在W3后。此关键依赖调整待人工评审;未获批前不开始W4a。SHA256 `aaf8c091772149a3547cbec272a7f38de3a47cc41c84b7bcef05e74510efbacf`。
## 阶段6启动记录
- 用户已批准阶段5r1(见上方审批表),同意DHF原工作区owner续办U2–U6及模型预算上限;这项授权不表示资产审核或基座tag发布已完成。
- 启动时本任务Dev/Documents保留评审稿,尚无业务代码提交。独立任务从各组件权威main及各自precheck建立;W2、W6、W9可在不同工作区并行准备,共享合同/消费关系按阶段5§2处理。
- W0初始对齐以DHF已记录的44逻辑资产/41原件hash及唯一ContentBlock候选为基础;所有资产当前仍未published,E1-R1四份仅为候选。用途/格式人工结论和单一合同版本仍须实际固定,未完成前W1/W11不放行发布。
## 阶段6 X2受影响方案审批
- 批准时间记录:2026-10-14T11:49:19.752273+08:00(本地记录时间;用户消息仅能确认2026-10-14日期精度)。批准对象为stage6-audit-link-design-adjustment-r1.md,SHA256 `385d9d7570217ddcce9fe60a60c99dc58c9a4875ad790584a724d09a210a6e52`。
- 批准范围:已提交项目业务事实的受信宿主链接、当前audit.read与资源权限字段投影、旧无链接记录不补造;W9/W8/W10相应实现与测试恢复授权。私人会话不因项目绑定自动发布;Tag发布仍按双钥匙。
## 阶段6局部代码与审阅(2026-10-14T11:52:25.226437+08:00)
- W2 RDM局部提交与W9 Backend私域安全切片各有作者SELF测试,但独立代码审阅均发现需要修复的实质问题;负责工作区继续改进,当前不构成阶段6增量或完整W2/W9验收。W6仍在接完整普通工作链。具体分支/HEAD和缺项见Dev任务卡,结果变更后重验。
- W9跨成员可信宿主链接的受影响设计已获用户批准;新增公共合同与消费链尚未实现/发布,旧私人会话仍保持私域。
## 阶段6新发现(2026-10-14T12:05:20.542456+08:00)
- W0新增可重跑DHF目录保护脚本与6类红绿测试;当前44份原件/逻辑身份核对通过、0已发布。F01/F02在DHF业务复核后有2项类型候选变化,仍未确认适用性或完成版本字典登记;原阶段1候选清单保留历史,不将此变化误报为原件损坏。
- W2独立审阅的既有5项失败路径已修复,但同一World项目字典修订与资料入库同时访问仍可能竞争,需修复并补并发负例。W6/W9各自Backend分支碰到迁移v31重号,最终组合前必须按真实合入顺序重排并重验。
+2
View File
@@ -6,6 +6,8 @@
## 先看哪一份
- [最新模板驱动的两树一网、成员上下文与完整可读审计 r5](2026-10-14-rdm-two-trees-latest-templates.md):阶段1–5已确认;E1保真仍未通过,风险处理已批准;阶段6增量A实施中,覆盖44份模板和全部28项需求;业务实现及运行验收NOT_RUN。
- [IAM I1 权限边界与公开扩展合同 r1](2026-10-13-iam-i1-permission-contract.md):
依据已批准的[用户、职位角色与分层权限统一方案 r1](2026-10-13-identity-role-permission-plan.md)
(Documents `a088809`)冻结系统/项目/资源边界、管理员无业务 bypass、创建者 cap、独立 `audit.read` 与公开扩展四要素。
@@ -0,0 +1,26 @@
# 两树一网本轮来源与原始评审对象
当前推进状态只在 [方案主记录](../../proposals/2026-10-14-rdm-two-trees-latest-templates.md) 维护。
本目录按原字节保存阶段1/2原对象、源调查及SELF收据;用户已批准阶段2及E1范围,当前结论在主记录更新,原对象保留批准前文字。对象中的旧工作区状态、绝对路径和/tmp引用是历史执行环境,不代表当前工作区准入状态。初次保存收据的完整副本在evidence目录,摘要在preservation-manifest.json;不改写已批准对象去覆盖历史。
- [阶段1原对象](rdm-two-trees-requirements-r1.md)
- [阶段2原对象与E1试验范围](rdm-two-trees-stage2-evaluation-r1.md)
- [阶段3需求与验收条件r1原对象](rdm-two-trees-stage3-requirements-r1.md):已获用户确认,原字节保留。
- [阶段4方案设计r1](rdm-two-trees-stage4-design-r1.md):用户已批准,原字节保留。
- [阶段5实施与测试计划r1](rdm-two-trees-stage5-implementation-test-plan-r1.md)
- [阶段5依赖状态快照](stage5-dependencies.json)
- [W0逐文件模板/目录对照r1](rdm-two-trees-stage6-w0-template-ledger-r1.md)
- [X1/X2基座公开扩展申请r1](rdm-two-trees-stage6-public-extension-requests-r1.md)
- [X2跨成员审计可信链接设计修订r1](rdm-two-trees-stage6-audit-link-design-adjustment-r1.md):用户已批准受影响公开合同,原对象保留评审前状态。
- [W2/W4关键依赖顺序修订r1](rdm-two-trees-stage6-w2-w4-sequence-adjustment-r1.md):W2并发与事务回滚失败后提出;待人工评审,未开始W4a。
- [阶段4源码与在途依赖快照](stage4-sources.json)
- [模板与会议来源台账](rdm-two-trees-source-inventory.json)
- [旧DOC源码补充](rdm-two-trees-legacy-source-addendum.md)
- [固定main及PR快照](stage2-sources/remote-snapshot.json)
- [相关PR变更文件](stage2-sources/overlap-snapshot.json)
- [额外源码哈希](stage2-sources/extra-source-snapshot.json)
JSON的localCopy字段记录调查时源码外缓存的位置;仓内保留源码commit/path/hash和远端链接,不在Documents复制另一套业务源码。公开依赖仍以各仓真实源码及当前pin为准。所有本地执行收据均为SELF,不能替代CI、独立重放或人工批准。
E1已按批准范围执行,全部原始产物及完整收据留源码外:[报告与逐文件结果](/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/e1-20261014-091421/REPORT-r1.md)。14份转换成功,完整保真未通过;原件未改变。业务实现、真实模型/浏览器、正式验收和部署仍未执行。此机器绝对路径只定位当前保存材料,不表示已在远端发布或可在其他机器直接取得。
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,117 @@
[
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/rdm-two-trees-requirements-r1.md",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-requirements-r1.md",
"sha256": "60fd0296840a74982ae65cc4bd1e6a810ace5109e103e8408a94d4db0573bad7"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/rdm-two-trees-stage2-evaluation-r1.md",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage2-evaluation-r1.md",
"sha256": "61733945c077ae6b8f8488ee5a0e41337d7e4a019854dc647e93fecbb4b72178"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/rdm-two-trees-legacy-source-addendum.md",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-legacy-source-addendum.md",
"sha256": "4157703086f11f06b367927824f0f0345ff0f1108eade8ee5926c9608a7f2784"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/rdm-two-trees-source-inventory.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-source-inventory.json",
"sha256": "7f55ac6fbd6088727855b49395e130bf81c8f3cb4e835bb2bdeb9bb3e3087bcd"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/remote-snapshot.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/stage2-sources/remote-snapshot.json",
"sha256": "3e61710ebc9c51af7ed7d530484b4b9c53eeb7efd4aadf45b6dccb1671a29956"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/overlap-snapshot.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/stage2-sources/overlap-snapshot.json",
"sha256": "e3b4f07086145cc4b2bd48d91a9dba6ca78e3ce4a2b512bd5257d2b122e6921f"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/extra-source-snapshot.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/stage2-sources/extra-source-snapshot.json",
"sha256": "60576c5fc8163c9981c4a7147102993be0fe8e6b84616df9f9d7860d780bd494"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/evidence/rdm-two-trees-01a13639-artifact-check.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-01a13639-artifact-check.json",
"sha256": "d433ea42b7ad4d13e5d0889b4c1a289708b86090f857cf05310f7939bbfbff61"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/evidence/rdm-two-trees-01a13639-legacy-source-receipt.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-01a13639-legacy-source-receipt.json",
"sha256": "39012119226daf018c09677384558ba78e400afd0f53b525c41ede95957a18a5"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/evidence/rdm-two-trees-01a13639-meeting-inventory-v2.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-01a13639-meeting-inventory-v2.json",
"sha256": "3cb936c388deddcc07e0cfaab4f72e954656bc3d42d245d43daf74956f314784"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/evidence/rdm-two-trees-01a13639-meeting-inventory.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-01a13639-meeting-inventory.json",
"sha256": "b6021e9adb656a48d5e01e6d1cdbf8fd7e413e4131008f495783bb0848f32c87"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/evidence/rdm-two-trees-01a13639-template-inventory-v2.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-01a13639-template-inventory-v2.json",
"sha256": "1ccb9e2f1c1bfc21f68066c9700d0db4c9239405640879f159f909250f39a0cd"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/evidence/rdm-two-trees-01a13639-template-inventory.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-01a13639-template-inventory.json",
"sha256": "9ed0ea32c52436b4d17157a29ba4d8d85879b11d9bba1b3a4bb96aadab80a2f2"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/evidence/rdm-two-trees-20261014-01a13639-start.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-20261014-01a13639-start.json",
"sha256": "833f2f4a4c8f8d327520be31fe7ee33d582a8864537beb5a4adbf6587eaee0a4"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/evidence/rdm-two-trees-stage2-check-01a13639.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-stage2-check-01a13639.json",
"sha256": "19e47e7f1050cbb370dd93f1aa01c2a2cabf2eb283b84278733cf41b05c5bd06"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/evidence/rdm-two-trees-stage2-extra-sources-01a13639.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-stage2-extra-sources-01a13639.json",
"sha256": "ee94eebd5e0ac20eb45d0eb535c73c9aa23c493b854d1accda948b0a46af3cc2"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/evidence/rdm-two-trees-stage2-gitea-token-01a13639.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-stage2-gitea-token-01a13639.json",
"sha256": "2b9901681248b74f0c467f8fffd508153a94ce1add9dec5a07a90a6a7577eeb5"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/evidence/rdm-two-trees-stage2-gitea-version-01a13639.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-stage2-gitea-version-01a13639.json",
"sha256": "c5647906354f86438559c5f4206044223e28501ec7605e3c96086c5d6cf482e0"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/evidence/rdm-two-trees-stage2-overlap-01a13639.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-stage2-overlap-01a13639.json",
"sha256": "123ffcfcbd414a80531e9262581dc45689e5dc37e8ca365c02b879dd3b50b5f7"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/evidence/rdm-two-trees-stage2-refresh-20261014-01a13639.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-stage2-refresh-20261014-01a13639.json",
"sha256": "f90188e833699834df7476696d37e7ee9822eeea8deb98797664019d4b13d89d"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/evidence/rdm-two-trees-stage2-remote-01a13639.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-stage2-remote-01a13639.json",
"sha256": "ce2eaf499e3fe62e8f91e47abb578fb57d83dbb52d00366e89e4e1c05acc5492"
},
{
"source": "/tmp/rdm-two-trees-recheck-20261014-084650-01a13639.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-recheck-20261014-084650-01a13639.json",
"sha256": "fcae2cb5e4dd7755b8dad093ca1cc7ff83403a5d81e119aea77fdcbdcf2e870a"
},
{
"source": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-refresh-20261014-084314/snapshot.json",
"saved": "docs/records/2026-10-14-rdm-two-trees-latest-templates/stage2-refresh-20261014-084314/snapshot.json",
"sha256": "b241e0e4f7eb3c48c9bc04f3105af4ef14df125e96b01f0a21d098d568cea5ce"
}
]
@@ -0,0 +1,15 @@
# 两树一网来源核对补充:旧 DOC 模板接入
更新时间:2026-10-14T01:25:29+08:00。状态:SELF 只读源码证据;阶段1需求范围及后续阶段仍待用户评审。
本补充不修改已提交评审的 [需求拆解 r1](rdm-two-trees-requirements-r1.md),r1 SHA256 为 `60fd0296840a74982ae65cc4bd1e6a810ace5109e103e8408a94d4db0573bad7`。
本轮44份模板中的14份 `.doc` 文件均为实际 OLE Word 容器,文件头与来源哈希逐份核对;两份内嵌ZIP对象的DOC也仍是旧Word文件。
Backend 当前源码 `5d5fc9891c0eb8994545ccb8b740535d9b99fb0e` 的 [解析入口](/home/weichen/projects/Agent-System-Dev/modules/backend/internal/ingest/ingest.go:85) 明确对 `doc/xls/ppt` 返回“不解析,请转存后重传”的提示。RDM实际pin中的对应源码与之逐字节相同。故14份旧DOC不能通过现有内置解析器直接得到完整模板章节/表格/样式。当前源码调查没有运行解析器、模板渲染或转换工具,不宣称运行验证。
这使 TT-T01(全部模板接入)和 TT-T02(细粒度内容完整)的后续方案必须明确旧DOC的正式转换或解析路径及其核验:原资产保持不变,转换/解析产物绑定来源哈希;章节、表格、示例/固定文本、图片和排版不能默默丢失。具体实现路线待对应设计阶段确认;不能将这些模板标为空、跳过后声称44份完整覆盖。
源码外全文提取只能支持需求调查,不能当作产品模板导入能力。完整命令输出由 evidence 工具保存到 `/tmp/rdm-two-trees-01a13639-legacy-source-receipt.json`,复制后保存于本目录 `evidence/`。
当前共享Dev仍有Documents及Guidelines两个gitlink漂移,未接管、未同步、未创建任务worktree。当前没有本任务阶段1需求评审结论或连续推进授权;动态方式DYN-01已确认且不重问。待用户回复此前两个问题后,按照确认范围从最早未满足的节点继续。
@@ -0,0 +1,232 @@
# RDM 两树一网最新模板需求拆解与来源核对 r1
状态:阶段 1 需求拆解,待用户评审;整体实现目标仍未完成。
记录人:Codex;负责人:用户;更新时间:2026-10-14T01:21:03+08:00。
本记录暂存于源码外,因为启动检查返回 `SHARED_WORKSPACE_BUSY`;没有创建任务 worktree、修改项目代码、迁移数据、部署或更改其他任务现场。恢复准入后须导入 Documents 主记录和本任务卡,不能把此暂存物当作仓内已交付方案。
## 1. 用户目标及已确认决定
依据当前用户原始请求:用 `.templates` 的最新模板和 `.tmp` 的项目材料补全两树一网,结构细致完整,允许不同项目按内容与进度动态扩充;同项目成员工作时将其作为上下文和依据;各种操作须完整留痕,追溯审计以人可读的结构化方式显示。
已确认决定 DYN-01:用户本轮选择“提出变更,确认后应用”。这只确认动态变更方式,不等于需求表、方案、实施计划或连续实施授权已经通过。
需求优先口径:当前用户要求及本轮决定;当前项目有效需求与 IAM 合同;最新模板中的内容要求;已裁定的历史会议。历史讨论保留来源,但被后续裁决替代的条款不恢复生效。模板中某个产品的示例、数值、姓名、企业信息和测试结果不成为其他项目的事实;模板列出的法规版本也不构成当前法规适用性证明。
## 2. 本轮已核对的材料与证据边界
- `.templates/DHF 文件模板` 实际含 **44 份 Word 模板:30 DOCX、14 DOC**,覆盖目录 0–6 七个阶段。`.DS_Store` 排除。44 份文字已提取;30 DOCX 提取表格行/单元格结构。14 DOC 目前为二进制主文字提取,**表格层级、样式、图片及最终排版未验证**;自动识别的 heading 只是候选,不能直接当已批准章节。
- `.tmp/Discussion-Meetings` 及根目录的 16 份原始 DOCX 已提取并登记哈希;会议输出与 `further-objective` 共 56 份 Markdown 建立来源索引。重点复核《08 核心数据模型》《13 架构与知识树讨论纪要》及权限、需求、设计的相关条款;索引不表示每份全文已作独立审阅。
- 当前本地 RDM 源码快照:`f3ed2d3b762a8f7f6d136d9b77808c2279825de8`。Dev 及 Backend、Frontend、Documents、Guidelines、RDM pins 的实际 SHA 和源码文件哈希见 [来源台账](rdm-two-trees-source-inventory.json)。此为本地源码调查 **SELF**,不是部署环境或最新远端准入证明。
- 新模板有四份阶段评审文件字节完全相同:输出、验证、转移、确认评审。应复用资产解析,但保留各自逻辑用途和阶段绑定。输入与转换两个风险报告也应分别绑定,不能用相同名称覆盖实例。
- 启动检查原始收据:[启动检查](/tmp/rdm-two-trees-20261014-01a13639-start.json)。当时 Dev `feature/rdm-increment-acceptance-note`,HEAD `648d6ee12c99b326a854a760db135f0b13106c10`,工作树显示 Documents/Guidelines 两个 gitlink 漂移,落后本次 fetch 的主干 30 提交。后续检查两个子仓本身 clean,但其检出不归本任务;不能自行切换或丢弃其现场。
- 模板首次提取两项失败的收据保留;根因为旧 DOC 中内嵌 ZIP 被错误判断成 DOCX。改以文件头识别后 44 份文字提取成功:[修正后完整收据](/tmp/rdm-two-trees-01a13639-template-inventory-v2.json)。抽取成功不代表模板内容、样式或业务验收通过。
- 业务单测、组合 test/build、浏览器、真实模型对照、CI、运行验收、迁移和部署均 **NOT_RUN**。本轮不引用旧任务测试作为此次实现通过的依据。
## 3. 当前能力与本次需求差距(源码事实)
| 范围 | 本轮源码可确认 | 本次需要补齐 |
|---|---|---|
| 两树与追溯网 | 已有 `NoteTree`、`DocTree`、一般追溯边、15 类受控节点/11 类合规边、结论、事件重放、项目分片 | 细粒度内容契约、项目可扩展结构与确认后的结构变更链路 |
| 模板 | 字典 69 文档类型;注册表 73 条,其中 69 为生成骨架 | 多数骨架含“章节名待补/内容要求待补”,不能代替本轮44份标准模板;须逐文件、逐章节、逐表格绑定 |
| 字典 | 14 阶段、69 类型、9 主题,随包内嵌种子;标签校验只接受受控值 | 同一项目版本化扩展阶段、主题、工作事项、专业/产品维度;不能绕过权限或污染其他项目 |
| 文档结构 | `structure.go` 按类型+标题、章节标题幂等补缺;`Section` 没有父章节/内容块字段;自举 YAML 定义 10 文档/22要求 | 稳定节点 ID、嵌套章节、字段/表格/重复块;重命名、移动、调整内容要求、废止、模板升级不能靠标题识别 |
| 笔记结构 | 支持骨架新增、切片多挂载;已有标签与软删除事件 | 正式的项目结构提案/确认/拒绝、层级调整、用户入口与版本冲突处理 |
| 工作上下文 | 已发布知识具备台账和资源授权;起草 Compose 通过章节条件取素材;普通对话初始知识注入由 `@knowledge` 触发;自动 Memory 适配器读 owner 的 `memory_entries` | 普通工作自动取得当前项目结构/阶段/结论/任务要求及相关已发布知识;不能把个人记忆或“检索工具存在”当作所有工作已使用两树一网 |
| 审计记录 | 事件有时间、actor、op、target、detail、operationId;审计列表归组并分页,DTO不返回原始重放 payload | 完整人物/来源、内容变更、前后版本、原因、结果、影响与实际上下文依据;覆盖失败/拒绝/后台/宿主动作并保持不同事实语义 |
| 审计页面 | `RdmAuditWorkspace.tsx` 已有四入口;事件行直接显示 `ev.op`、actor ID、截断 detail;关系行显示英文 layer/state 和对象 ID | 中文业务动作、人物名称、对象路径、结构化差异、影响列表、权限内证据跳转;人可读的筛选与分组 |
| 授权 | 当前 IAM 要求独立 `audit.read` grant;创建者/管理员身份不自动赋予业务审计 | 成员日常上下文与业务审计分动作;审计权限不替代文档三权/当前正文权限,权限变更和跨项目均服务端执行 |
以上仅是需求调查;没有声明所有现有写路径已完成完整性或并发审计。
## 4. 用户场景与成功标准
1. 新建软件项目或含软硬件/无菌的项目后,以适用模板建立初始内容清单;软件项目可对不适用的材料/灭菌事项标“不适用+依据”,记录仍保留。项目差异不靠复制固定树硬编码。
2. 上传或整理资料后,成员先得到来源明确的知识切片、相关节点和缺项;系统提出增加主题/章节/需求/关系或调整挂载的提案,展示理由与影响,用户确认后才改变有效结构。
3. 两名成员在同项目的个人会话中做不同任务时,均自动使用各自可访问的共同项目知识、当前要求与已确认结论,输出可回指实际使用的节点及版本;原始会话、个人草稿、原件不因成员身份自动共享。
4. 对某一需求、章节、风险控制或测试结果查看追溯时,能分辨“有来源”“已确认”“待复核”“缺少验证”,可定位确切版本、相关资料和受影响文档。
5. 在审计页查看一次结构调整或文档更新,能读出谁、何时、为何、从什么改成什么、谁确认、成功或失败、直接/间接影响;分页不拆散一次操作、不丢事件,不显示机器 payload 作为业务记录。
6. 重启、并发修改、后台任务恢复、撤销成员/职责、切换项目/账号后,上述结构、权限、历史与上下文仍一致;未知历史信息明确“当时未记录”,不补写假事实。
## 5. 两树一网的内容分工与细粒度要求
### 5.1 笔记树:项目知道什么、依据是什么
浏览骨架可按项目阶段、工作事项、子系统和主题组织;知识本体允许多处挂载,保持唯一 ID。需要覆盖:项目目标/范围、用户场景、原始资料切片、会议决议、已确认结论、需求与约束、技术方案、风险与控制、验证证据、转换/确认资料。问题、冲突、假设和缺项在登记册维护并关联相应树节点;不能塞入正式正文假装内容完成。
每条知识至少可定位:类型/标题/摘要、原文或证据引用、来源主体与上传/产生/确认者、原始文件或对话发言锚点、页/章节/表格/段落、归属项目/阶段/工作事项/主题、适用范围、有效/待确认/取代/废止状态、版本、时间、取代链、确认及共享状态。扩展属性需有字段语义和来源,不能用无约束 JSON 代替可验证的业务结构。
### 5.2 文档树:需要交付什么、每一处应写什么
实例层级允许“阶段 → 文档 → 多级章节 → 段落/字段/表格/重复项/附件引用”。模板定义、项目文档实例和历史版本分别记录。通用字段包括稳定 ID、父节点、排序、节点种类、内容要求、输入/证据条件、必填/可选/条件适用、填写说明/示例区分、字段类型/单位/验证方法、表格列和重复规则、负责人/三权、当前内容版本、进度及缺项。
进度不能只用有无文字:应区分未开始、素材不足、草稿、待确认、评审中、已批准、依据变更待复核、不适用。数量统计须说明范围与截止版本;“不适用”保留理由及确认记录,不物理删除必需项。蓝字/斜体示例与固定文本的含义要从原模板解析,不能按整段正文无差别复制。
项目建议书最新模板至少要求:项目内容/定位/竞品差异/目标/意义;立项依据/行业/客户/技术基础;产品型号/组成/性能;人员/场地设备/经济预算;其他说明;修订历史和编制/审核/批准元信息。
最新用户需求模板包含 **12 组**内容:临床与用途、用户与场景、功能与性能、安全风险、生物化学安全、可用性、兼容接口、灭菌感染控制、包装运输储存、软件数据、标识信息、法规合规。既有会议的六维分类仍保留为分类维度,不能据此裁掉本轮模板中的具体组项。
系统需求与设计输入要求保留 UN/SR/DI 的编号、来源、条件/行为/约束、子系统与可验证方法;各类测试保留用例、需求引用、环境/被测版本、预期/实际结果、执行者与证据。软件配置计划、配置报告、维护计划,软件详细设计、集成测试、追溯报告,以及设计验证/确认记录、试产总结等须分别建模其用途。
### 5.3 追溯网:事实出处、实现与证据链、变化影响
保留一般来源/操作关系与受控合规关系两套现有语义,经统一读取展示。至少能表达资料→结论、模板要求→章节、UN→SR→DI→设计实现→验证、风险→控制措施→需求/实现/验证、软件需求→架构/详细设计→单元/集成/系统测试→结果,及设计输出→转换/确认。
受控关系绑定端点的确切版本;候选关系经确认才生效;端点升版后显示待复核,不能自动把旧测试宣称为新版验证。影响范围同时展示直接对象和可追踪的间接对象,区分“本次操作当时记录的影响”与“按当前版本重新分析的影响”。资料来源、法规条款、模板、会议发言等作为证据可回查,不能把操作日志数量当作合规覆盖率。新增受控类型和 DI 与当前15类节点的绑定方式留待方案设计明确。
### 5.4 项目动态扩展(已选方式)
触发包括新资料、新需求、阶段推进、发现缺项、模板升级或成员主动整理。提案须说明新增/重命名/移动/调整要求/取代/废止的对象、具体差异、证据、理由、直接/间接影响、适用范围和风险;允许接受、修改后接受或拒绝。
确认时重验当前用户权限、当前节点/结构版本、模板版本及受控状态;发生并发冲突返回可读差异,不覆盖他人修改。修改结构及关联事件整批原子保存,幂等重试不重复生成节点,失败不出现半棵树。受控正文/已批准内容的实质变更仍遵守既有三权与重审规则;新增普通结构节点的确认不代替文档批准。
## 6. 成员工作上下文的必需内容
每次工作根据可信项目身份与当前主体获取:项目概况/范围/阶段,任务对象与内容要求,相关已确认结论,相关当前文档内容(按权限),来源知识、未决冲突/缺项和本次依据版本。先提供短摘要与稳定引用,按任务相关性拉取细节,并有预算与截断说明;无需每轮读取所有文档,也无需用户输入 `@knowledge` 才得到项目依据。
上下文在新任务、项目/任务切换和相关有效变更后刷新;后台恢复与执行前重验权限及版本,历史对话里的已撤权正文不能继续作为授权读取入口。模板只用于约束任务,原始资料中的指令视为数据。记录实际向模型提供的对象、版本、检索范围、有效水位、摘要/裁剪及来源;“系统预期会使用”不算实际使用证据。
共享的是经确认/发布且当前有权限使用的项目知识;审计读取、结构元信息、受控正文、原件和个人对话分别按现行 IAM 授权。同项目成员能使用工作依据不意味着自动获得全员原始对话、草稿或审计全量权限。撤销/废止后新工作排除相应依据;仍相关的冲突必须作为冲突显示,不能靠“最新内容优先”悄然裁决。
## 7. 完整记录与可读审计
### 7.1 操作覆盖矩阵
| 对象 | 需记录的操作 | 必须解释的影响 |
|---|---|---|
| 模板与项目结构 | 导入、解析、版本绑定、初始化、增加、重命名、移动、排序、修改要求、废止、升级、提案/确认/拒绝 | 哪些实例/章节/资料挂载/职责/缺项/后续任务受影响 |
| 知识与资料 | 上传、相关性判定、确认/拒绝、解析、切片、标签变更、挂载/摘挂、发布/撤销、结论确认/修订 | 来源、共享范围、引用它的章节/需求、索引及依据有效性 |
| 文档 | 起草、提案、采纳/拒绝、编辑、版本化、提交、批注、审核、驳回、批准、撤回、导出 | 正文/版本/审签状态及受影响引用,原件和输出证据 |
| 需求/风险/测试/追溯 | 条目增改、分解、候选边、确认/废止、端点升版、风险控制、测试执行/结果登记、基线快照 | 直接/间接影响、失效关系、验证缺口与待复核范围 |
| 权限与成员 | 成员加入/移除、角色/职责/权限变更、拒绝访问、授权后的查看/下载/导出 | 当前与原有效权限/职责、受影响工作与可读范围,隐藏未授权正文 |
| 智能体与后台工作 | 任务发起、模型/工具执行、获取上下文、确认等待、恢复、取消、重试、失败、完成、投递 | 发起人/执行主体、实际输入依据、输出对象、结果、错误与未完成项 |
这里只定义与本项目工作有关的操作覆盖,不把每次鼠标 hover 等 UI 噪声当业务操作;同一次后台重试保留尝试信息但不重复宣称业务生效。
### 7.2 记录字段与事实语义
- 时间:发生、开始/结束、提交/生效、确认与失败时间(适用时),统一保存明确时区/精度,页面按用户时区展示;未知值写未记录。
- 人物:稳定用户 ID、当时显示名/角色/职责、发起人与执行主体、智能体/任务/run、确认/审核/批准者;账号改名后历史身份仍可辨认,系统动作和人工动作可区分。
- 定位与操作:项目、请求/操作/批次/关联任务/会话的受控引用,动作类型、对象类型/ID/标题/路径、作用范围、预期版本、实际前后版本、幂等键/因果链。
- 内容与依据:操作前后字段或结构差异、不可变原文/版本引用及哈希、原因与用户意见、模板ID/版本/hash、知识/文件/章节/表格锚点;网络来源保留URL、查询词、检索时间和具体引用;模型相关动作保存可用的模型/工具与输入依据引用。
- 结果与影响:成功/失败/拒绝/取消/待确认/部分完成的真实状态,错误类别、实际已发生效果、直接/间接影响对象、需要重审/重做/补证的条目及影响分析的版本/范围。
- 记录完整性:schemaVersion、完整操作批次、seq/commit水位、可信执行来源及缺项。历史没记录的字段不靠当前值或模型补造。
成功结构变更与相应事件必须一致提交;失败/拒绝/取消属于操作尝试,不能插入“已生效”的结构事件去伪造结果。跨库/跨宿主记录要保留真实投递状态和恢复链路,具体事务与尝试日志实现由方案阶段确认。公开 DTO 与内部重放 payload 分开,敏感值、凭据、未授权原文不随审计摘要泄漏。
### 7.3 页面可读结果(示例,非真实审计记录)
> **某成员于 10:42 调整了“设计输入 / 用户需求 / 使用环境”**
> 操作:将“门诊场景”移至“医院使用场景”;依据:已确认会议结论与用户需求模板。
> 变更:父节点从“补充资料”变为“医院使用场景”,知识正文保持同一不可变来源。
> 确认:另一名具备该动作权限的成员确认,结构版本 8 → 9,结果“已生效”。
> 影响:2 份相关文档、3 个需求条目需要复核;其中 1 个已批准章节的依据发生变化。
> 展开:前后差异 / 来源依据 / 当时影响 / 当前关联 / 有权限的对象详情。
默认以一次业务操作展示一张摘要或一行时间线,中文动作、人名、对象名称/路径、时间和结果直接可读。展开为可比较的前后字段、原因、确认链、内容引用与影响对象列表;需要更多证据时再打开现有唯一文件预览。技术操作码、原始 JSON/base64 payload、数据库记录不作为页面的业务记录展示,也不能用通用 AI 生成未经证实的审计解释。
按时间、人物、业务动作、对象、结果和任务筛选;重试/批次按一次操作归组,操作跨页时仍可完整展开。新旧项目、账号或历史水位切换必须丢弃迟到响应。历史模式提供可读时间/正式版本选择,完整批次截止语义仍保留。已废止对象可审计,但是否能看历史正文仍取决于当前权限。页面只消费 `DESIGN.md` 的令牌、MotionKit、Collapsible,沿用现有四入口、三栏与唯一预览。
## 8. 候选子需求清单(供阶段1评审;不是已批准需求表)
| ID | 需求 | 可判定成功条件 | 来源 |
|---|---|---|---|
| TT-T01 | 完整登记44份最新Word模板,保留原文件/哈希/格式与阶段用途 | 44份均有解析结果或明确阻塞,不以占位骨架计为标准模板完成 | 当前请求、.templates |
| TT-T02 | 内容要求覆盖多级章节、表格字段、重复块、附件与填写约束 | 逐模板对照不丢必需项,示例不进入项目事实 | 模板、《08》§三、C-08 |
| TT-T03 | 按产品/项目适用性选择并确认内容 | 软件/硬件/无菌等不同项目的必需/可选/不适用项目可解释、可追溯 | 当前请求、模板说明 |
| TT-T04 | 模板定义、实例、文档版分别绑定版本 | 升级预览差异,确认后应用;旧实例可回查原模板hash | 模板、既有模板方案 |
| TT-N01 | 项目知识、来源、结论与问题完整组织 | 知识唯一ID、多挂载、来源可定位,结论取代与软删除可回放 | 《08》§二、§十、R1–R5 |
| TT-N02 | 项目自有阶段/主题/工作事项/类型扩展 | A项目扩展不污染B项目,两个树的标签语义一致且有版本 | 当前请求、《08》§四 |
| TT-D01 | 文档树支持稳定ID与递归内容结构 | 移动/重命名后ID及引用保持,重复表格与附件可表达 | 当前请求、44份模板 |
| TT-D02 | 动态结构提案、差异、确认/拒绝 | 确认前有效树不变;接受/拒绝可审计且重启后保存 | 本轮 DYN-01 |
| TT-D03 | 并发、原子保存、幂等、故障恢复 | 旧版本写入拒绝;事件中途失败零部分结构;重复确认不生成双份 | 《08》§十五、既有U2合同 |
| TT-D04 | 受控正文与结构变更不绕过审签 | 已批准正文需既有重审;普通结构确认不自动批准文档 | 现行三权、J-04 |
| TT-G01 | 一般来源与受控合规链均可追溯 | UN/SR/DI/设计/测试及风险/软件链可按版本查看,候选/缺项明确 | 最新模板、《08》§十六 |
| TT-G02 | 端点升版与关系影响可复核 | 旧关系不宣称新版有效,直接/间接影响及分析水位可辨认 | 《08》、C-01 |
| TT-G03 | 来源主体与证据锚点完整 | 人工/规则/模型、模板、网络、知识引用分别可定位 | 《08》§十、SR-D6 |
| TT-C01 | 日常工作自动获得项目结构与依据 | 普通成员无需@knowledge;实际模型输入含当前项目任务相关依据 | 当前请求、SR-G10/G11 |
| TT-C02 | 任务相关检索与渐进上下文 | 不全量读全部文档;素材、模板要求、冲突、缺项和截断有说明 | C-08/C-09、J-07 |
| TT-C03 | 共享与私域及当前权限闭环 | 跨成员只取已授权共享/职责正文;跨项目/撤权后不泄漏 | 现行 IAM、私域合同 |
| TT-C04 | 上下文依据与版本可审计,恢复时刷新 | 记录实际输入ID/版本/水位;恢复不继续用撤权或失效依据 | 当前请求、行为面验证要求 |
| TT-A01 | 覆盖结构/内容/关系/权限/智能体各类操作 | 操作覆盖矩阵每格有记录或明确不适用,不虚报全量 | 当前请求、SR-G3 |
| TT-A02 | 时间、人物、操作、内容、影响完整 | 具备§7.2字段及缺项标识,能定位前后版本与确认链 | 当前请求、《08》§八/十/十四 |
| TT-A03 | 成功和失败/拒绝/取消语义准确 | 失败保留尝试及实际副作用,不能成为已生效事件 | 当前请求、R4/R5 |
| TT-A04 | 宿主/后台关联及历史诚实出口 | 真正关联操作/run,无法取得的面标明未覆盖,旧信息不补造 | 现有inspection coverage |
| TT-U01 | 审计自然语言摘要与结构化详情 | 无内部op码/原始payload冒充业务记录,用户可读前后差异与影响 | 当前请求、DESIGN.md |
| TT-U02 | 来源/影响对象和证据可读可跳转 | 人可识别标题/路径/关系含义,进入权限内详情及唯一文件预览 | 旧追溯方案、《08》 |
| TT-U03 | 可读筛选、完整归组、分页及历史查看 | 时间/人物/动作/对象/结果可筛,跨页操作不拆失,迟到响应丢弃 | 当前请求、异步/seq规则 |
| TT-U04 | 审计动作与正文权限分离 | metadata/差异/历史/导出统一披露规则,audit.read不自动赋予正文权 | 当前 IAM、隐私合同 |
| TT-V01 | 模板/结构/重放与故障有需求到证据映射 | 固定候选和精确pins;正常、并发、失败、重启场景可重放 | 根AGENTS、verification |
| TT-V02 | 真实模型任务级前后对照 | 同项目成员普通工作展示实际依据使用、召回/错误引用/失效处理结果 | policy/delivery.md 行为面验证 |
| TT-V03 | 真实浏览器和当前HEAD CI验收 | 两项目两成员流程、审计可读性、动态提案确认与权限回归验证 | 用户目标、交付门禁 |
## 9. 边界、尚待确认事项与接续
本次增量围绕标准模板接入、动态两树一网、成员工作上下文与完整可读审计;复用既有项目/IAM、知识发布、受控合规图、审签与审计入口。团队存储架构替换、平台身份重构、飞书发布、法规定版和线上服务变更不由此次请求自动扩展授权。
仍需后续设计明确:新模板七阶段与现有14阶段的映射;44个资产与69既有类型及新细分类的绑定;示例/固定文本及DOC样式解析;现有项目的升级预览和历史资料适用性;普通成员工作读取面与audit.read差异;默认上下文预算及相关性排序;宿主/失败尝试审计的公开扩展能力。明确待核实,不预写“已就位”。
按 `policy/delivery.md`,目前仅阶段1需求拆解产物可评审,阶段2–7及10没有本任务人工结论。本轮动态方式已确认。用户可按阶段评审;若明确授权连续推进,须记录对应阶段、允许动作、终点与停止条件。无法取得当前HEAD CI/独立平台批准、基座发版tag必须由用户执行、出现模板或数据身份冲突、需要线上迁移/部署时,按实际边界停止受影响工作。
建议接续顺序仅用于解释依赖,不构成实施计划已批准:先完成源材料和内容绑定;再明确项目扩展/结构提案与版本合同;随后将工作上下文、写操作审计和可读展示沿真实链路串通;最后固定组合完成模板对照、故障重放、真实模型/浏览器及当前HEAD CI。远端在途任务重叠尚未重新核验,阶段2须核对,不能重复实施已经交付或在途的范围。
写入准入前需要工作区owner保存并处理现有gitlink漂移/分支现场,再使用新唯一收据重跑启动检查至READY并从origin/main建立登记任务工作区。本任务不代替owner声明“所有写者已退出”。源码外主记录/台账届时导入 `modules/documents/docs/proposals/` 并在 PROJECT.md 及任务卡引用;本记录不声称已完成仓内留存。
## 附录A. 44份模板逐文件候选绑定
此表是需求调查候选,所有新类型名称与阶段映射尚未批准;现有类型不存在时显式标出,不以类似名称假装已覆盖。未提供标准模板的既有69类条目保留并标缺项,不以44份替换后声称全部模板完成。
| # | 来源文件(均在`.templates/DHF 文件模板/`) | 阶段目录 | 候选docType | 注意事项 |
|---|---|---|---|---|
| 1 | 0.1初始要求申请表.docx | 0. 商务阶段 | `bd_intake` | 已有类型候选;内容要求与格式仍需逐项批准 |
| 2 | 1.1、731QCP29-F01 项目建议书 02.docx | 1. 策划阶段 | `rd_proposal` | 已有类型候选;内容要求与格式仍需逐项批准 |
| 3 | 1.2、731QCP29-F02 设计开发计划任务书 02.docx | 1. 策划阶段 | `rd_design_plan` | 已有类型候选;内容要求与格式仍需逐项批准 |
| 4 | 1.3、731QCP29-F07 设计开发(策划)评审记录 02.docx | 1. 策划阶段 | `rd_planning_review` | 已有类型候选;内容要求与格式仍需逐项批准 |
| 5 | 2.10.1、731QCP29-F13 配置管理计划 02.docx | 2. 设计输入阶段 | `rd_sw_config` | 现有类型合并配置与维护,计划/报告不得混用 |
| 6 | 2.10.2、软件维护计划模板.docx | 2. 设计输入阶段 | `rd_sw_maintenance_plan` | 现有类型未区分;需新增或评审 subtype |
| 7 | 2.11.1、731QCP29-F16设计输入规格书模版.docx | 2. 设计输入阶段 | `rd_design_input_spec` | 已有类型候选;内容要求与格式仍需逐项批准 |
| 8 | 2.12、731QCP29-F05 设计开发输入清单 02.docx | 2. 设计输入阶段 | `rd_design_input_list` | 已有类型候选;内容要求与格式仍需逐项批准 |
| 9 | 2.13、RDDHF0213-xxxx产品系统设计方案.doc | 2. 设计输入阶段 | `rd_system_design` | DOC 已提取主文字;表格层级、样式、图片仍需正式解析核验 |
| 10 | 2.14、731QCP29-F07 设计输入评审记录.docx | 2. 设计输入阶段 | `rd_input_phase_review` | 已有类型候选;内容要求与格式仍需逐项批准 |
| 11 | 2.1、731QCP29-F14 用户需求模板.doc | 2. 设计输入阶段 | `rd_user_needs` | DOC 已提取主文字;表格层级、样式、图片仍需正式解析核验 |
| 12 | 2.2、RDDHF0202-xxxx 医疗器械法规和标准清单.docx | 2. 设计输入阶段 | `rd_regs_stds` | 已有类型候选;内容要求与格式仍需逐项批准 |
| 13 | 2.3、RDDHF0203-xxxx 同类产品不良事件信息.docx | 2. 设计输入阶段 | `rd_adverse_events` | 已有类型候选;内容要求与格式仍需逐项批准 |
| 14 | 2.4、731QCP29-F15 系统需求规格书模板.doc | 2. 设计输入阶段 | `rd_system_reqs` | 与 pm_system_reqs 的边界需明确,不能默认按 YAML 顺序选取;DOC 已提取主文字;表格层级、样式、图片仍需正式解析核验 |
| 15 | 2.5、731QCP29-F07 需求评审记录表.docx | 2. 设计输入阶段 | `rd_req_review` | 已有类型候选;内容要求与格式仍需逐项批准 |
| 16 | 2.6、731QCP29-F03 风险管理计划 02.docx | 2. 设计输入阶段 | `rd_risk_plan` | 已有类型候选;内容要求与格式仍需逐项批准 |
| 17 | 2.7.3、731QCP29-F04 风险管理报告 02.docx | 2. 设计输入阶段 | `rd_risk_report` | 新模板属输入阶段;现有类型归输出阶段,阶段口径需确认 |
| 18 | 2.8、731QCP29-Fxx 软件开发计划-模板.doc | 2. 设计输入阶段 | `rd_sw_plan` | DOC 已提取主文字;表格层级、样式、图片仍需正式解析核验 |
| 19 | 2.9、软件需求规格书模板.docx | 2. 设计输入阶段 | `rd_sw_reqs` | 已有类型候选;内容要求与格式仍需逐项批准 |
| 20 | 3.12、原材料进货检验规范-模版.docx | 3. 设计输出阶段 | `rd_incoming_iqc` | 已有类型候选;内容要求与格式仍需逐项批准 |
| 21 | 3.15、产品技术要求.doc | 3. 设计输出阶段 | `rd_tech_req` | DOC 已提取主文字;表格层级、样式、图片仍需正式解析核验 |
| 22 | 3.17、731QCP29-F06 设计开发输出清单 02.docx | 3. 设计输出阶段 | `rd_design_output_list` | 已有类型候选;内容要求与格式仍需逐项批准 |
| 23 | 3.18、731QCP29-F07 设计输出评审记录.docx | 3. 设计输出阶段 | `rd_output_review` | 四份阶段评审模板字节相同;保留阶段独立用途 |
| 24 | 3.6.2、软件详细设计模板.docx | 3. 设计输出阶段 | `rd_sw_detail_design` | 现有类型未区分;需新增或评审 subtype |
| 25 | 3.8、RDDHF0213-xxx采购技术说明-结构&硬件.doc | 3. 设计输出阶段 | `rd_purchase_spec` | DOC 已提取主文字;表格层级、样式、图片仍需正式解析核验 |
| 26 | 3.9.1、731QCP29-Fxx 工艺流程图模板.doc | 3. 设计输出阶段 | `rd_process_flow` | DOC 已提取主文字;表格层级、样式、图片仍需正式解析核验 |
| 27 | 3.9.2、RDSOP00xx-00xx xxx作业指导书.docx | 3. 设计输出阶段 | `rd_work_instruction` | 现有类型未区分;需新增或评审 subtype |
| 28 | 731QCP33-F01 软件可追溯性分析报告 02.docx | 3. 设计输出阶段 | `rd_sw_trace_report` | 现有类型未区分;需新增或评审 subtype |
| 29 | 24.产品有效期验证.doc | 4. 设计验证阶段 | `rd_lifetime` | 使用期限与货架寿命须按正文及适用范围确认;DOC 已提取主文字;表格层级、样式、图片仍需正式解析核验 |
| 30 | 41.软件单元测试用例-模板.doc | 4. 设计验证阶段 | `rd_sw_unit_test` | 测试用例与测试结果分实体,报告绑定用例及被测版本;DOC 已提取主文字;表格层级、样式、图片仍需正式解析核验 |
| 31 | 42.软件集成测试用例-模板.doc | 4. 设计验证阶段 | `rd_sw_integration_test` | 现有类型未区分;需新增或评审 subtype;DOC 已提取主文字;表格层级、样式、图片仍需正式解析核验 |
| 32 | 43.软件系统测试用例-模板.doc | 4. 设计验证阶段 | `rd_sw_sys_test` | 测试用例与测试结果分实体,报告绑定用例及被测版本;DOC 已提取主文字;表格层级、样式、图片仍需正式解析核验 |
| 33 | 49. 软件配置管理报告-模板.doc | 4. 设计验证阶段 | `rd_sw_config_report` | 现有类型未区分;需新增或评审 subtype;DOC 已提取主文字;表格层级、样式、图片仍需正式解析核验 |
| 34 | 731QCP29-F07 设计验证评审记录.docx | 4. 设计验证阶段 | `rd_verification_review` | 四份阶段评审模板字节相同;保留阶段独立用途 |
| 35 | 731QCP29-F08 设计开发验证记录 02.docx | 4. 设计验证阶段 | `rd_verification_record` | 现有类型未区分;需新增或评审 subtype |
| 36 | 756QCP26-F02 验证确认报告 V03-.docx | 4. 设计验证阶段 | `rd_verification_validation_report` | 现有类型未区分;需新增或评审 subtype |
| 37 | 731QCP29-F04 风险管理报告 02.docx | 5. 设计转换阶段 | `rd_risk_report_t` | 已有类型候选;内容要求与格式仍需逐项批准 |
| 38 | 731QCP29-F07 设计转移评审记录.docx | 5. 设计转换阶段 | `rd_transfer_review` | 四份阶段评审模板字节相同;保留阶段独立用途 |
| 39 | 731QCP29-F09+试产总结报告+03-20250730.docx | 5. 设计转换阶段 | `rd_trial_production_report` | 现有类型未区分;需新增或评审 subtype |
| 40 | 53. 使用错误评估报告-模板zlx.doc | 6. 设计确认阶段 | `rd_use_error` | DOC 已提取主文字;表格层级、样式、图片仍需正式解析核验 |
| 41 | 731QCP29-F07 设计确认评审记录.docx | 6. 设计确认阶段 | `rd_confirmation_review` | 现有类型未区分;需新增或评审 subtype;四份阶段评审模板字节相同;保留阶段独立用途 |
| 42 | 731QCP29-F11 设计开发确认记录 02.docx | 6. 设计确认阶段 | `rd_confirmation_record` | 现有类型未区分;需新增或评审 subtype |
| 43 | 756QCP20-F01 计算机软件确认报告 02.doc | 6. 设计确认阶段 | `rd_sw_validation_report` | 现有类型未区分;需新增或评审 subtype;DOC 已提取主文字;表格层级、样式、图片仍需正式解析核验 |
| 44 | 756QCP26-F01 验证确认方案 V03-.docx | 6. 设计确认阶段 | `rd_validation_plan` | 已有类型候选;内容要求与格式仍需逐项批准 |
## 附录B. 重点可复核源码与来源
- RDM:`internal/domain/{notetree,doctree,labels,eventlog,tracenet,compliance,conclusion}.go`、`internal/rdmapp/{templates,templates_gen,structure,inspection,inspection_visibility,compose,knowledge_publication,runtime}.go`、`plugins/rdm/plugin.go`。
- Dev 固定实际检出:`modules/backend/internal/runtime/llm.go`、`modules/backend/internal/runmgr/memory.go`、`modules/backend/internal/ctxasm/ctxasm.go`、`modules/backend/internal/app/app.go`、`modules/frontend/src/components/RdmAuditWorkspace.tsx`;RDM实际 pins 中已核对初始知识注入入口相同。
- 会议重点:`.tmp/Discussion-Meetings/2026-10-08_19-36/Outputs/{01,03,08,10,11,13}*.md`;旧期输出用于保留来源及裁定次序;ASR含转写噪声,不以未核实人名与数字建立正式业务事实。
- 关联有效主记录:`modules/documents/docs/proposals/2026-10-11-rdm-two-trees-trace-audit-integration.md`、`2026-10-11-rdm-template-dialog-generation.md`、`2026-10-11-rdm-final-target-completion.md`、`2026-10-13-system-project-membership.md`;原U1–U5已有实施记录,本次是新增内容与能力补齐,旧报告不能替代本轮源核对。
后续评审与实现只在同一主记录续办,确认DYN-01不重问;其他未完成阶段、当前源码SHA、准入收据、模板绑定候选及NOT_RUN缺项一并保留。
@@ -0,0 +1,152 @@
# 两树一网阶段 2:需求评估 r1
状态:阶段 1 已获用户确认;本阶段 2 评估待人工评审。整体实现目标尚未完成。
记录人:Codex;评审人/需求负责人:用户;记录时间:2026-10-14T03:54:21+08:00。
授权方式:manual(按阶段人工评审)。共享Dev工作区由原负责人收尾并同步;本任务继续只读调查及源码外记录,没有接管、同步、创建任务worktree、修改业务代码、迁移或部署。
## 1. 已确认范围与本次评估对象
阶段1评审对象:[需求拆解 r1](rdm-two-trees-requirements-r1.md),SHA256:`60fd0296840a74982ae65cc4bd1e6a810ace5109e103e8408a94d4db0573bad7`。用户回复原话:**“确认需求,继续按阶段人工评审”**;现场处置原话:**“由原工作区负责人先收尾并同步”**。来源为本聊天 `request_user_input_async / call_22243aaf29ae4ad19c4322a1d7fd8b0f` 的第0、1项回复。确认的是阶段1需求拆解及后续流程,不是阶段2–7产物已批准。
已确认动态方式DYN-01:智能体提出结构变更,成员确认后应用。保持28个TT需求及44份新模板逐文件范围,不重新缩成固定三层树、部分模板、手动知识查询或仅审计文案翻译。未提供新标准模板的既有类型保留并明确缺项;不声称最新44个资产覆盖全部69个既有类型。
本阶段评估价值、可行性、工程和评审成本、风险、依赖、在途任务重叠及模块/公开契约符合度;不冻结新API、数据库迁移方案或实施计划。下一阶段仍须人工评审。
## 2. 评估结论与推荐取舍
**整体可行,建议在既有RDM领域能力上补齐完整链路;工程量高。** 现有两树、一般网/受控合规图、原子事件、重放、文档审签、发布授权及四入口审计工作区可复用。主要工作是细粒度模板/节点契约、项目扩展与结构提案、默认项目工作上下文、审计写入信息与读投影,而不是只增加树的显示。
建议保留全部已确认需求,按可验证增量实施,完整目标不因分批而缩小。先解决模板完整接入和结构/版本依赖,再将成员上下文、操作审计及人可读展示接成真实流程;既有权威数据和权限边界保留。准确顺序、实施单元、接口和测试环境在阶段4–5定稿,本阶段只评估依赖。
| 路线 | 对目标的满足程度 | 成本/风险 | 推荐结论 |
|---|---|---|---|
| 复用现有RDM结构、事件、发布和审签;补细粒度契约及必要公开扩展 | 能覆盖44模板、项目动态扩充、成员工作依据及完整可读审计 | 局部领域数据演进、基座扩展/发版依赖、真实模型与组合验收成本较高 | 推荐,进入后续需求表与设计 |
| 只导入标题和若干表格,再翻译审计op码 | 无法覆盖多级内容、动态确认、实际上下文和完整操作影响 | 代码量低,但留下用户明确提出的主要缺口 | 不作为本目标交付路线 |
| 重写两树/图存储和项目/权限体系 | 可重新建模,但与已交付能力大量重叠 | 迁移和历史保真风险最大,会拖入无关体系替换 | 当前无证据需要全面重写,不推荐 |
## 3. 当前主干事实、基线与证据等级
本次使用已验证的Gitea只读API,按完整main SHA读取不可变文件。七仓开放PR清单已分页读取,十个相关PR进一步核对了变更文件并在读取前后核验head一致。清单和源码复制为 **SELF** 调查证据,不是CI/GATE或独立代码Review通过。
| 仓库 | 本次API核验的main SHA | 当前开放PR数 |
|---|---|---|
| Agent-System-Backend | `5d5fc9891c0eb8994545ccb8b740535d9b99fb0e` | 3 |
| Agent-System-Dev | `add097d06137c4912a4ed9279e98ca353e4e4cf1` | 6 |
| Agent-System-Documents | `a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c` | 2 |
| Agent-System-Frontend | `eb2d6d32f9323094d568bc9d80b4e5ed4f0af25b` | 2 |
| Agent-System-RDM | `6fcb256205c2384abed35d3b6ab96ca7216e9297` | 2 |
| Agent-System-UI | `2c4322ef56df64ad72f65907d25b048a74bb5ffc` | 1 |
| Development-Guidelines | `2f5b19872be2a4597838a4131ad75d1be089ee5e` | 0 |
来源:[主干与PR快照](stage2-sources/remote-snapshot.json)、[相关PR变更文件快照](stage2-sources/overlap-snapshot.json)、[额外固定源码](stage2-sources/extra-source-snapshot.json)。核验时间以各快照 `checkedAt` 为准;正式启动/验收时必须再获取权威目标,不能把此快照当未来main。
复核的RDM/Backend/Frontend主要业务文件与本地实际检出逐字节相同;Dev PROJECT/delivery及Documents索引存在差异,当前共享检出仍停留在旧任务分支。远端和当前检出的delivery规则都保留阶段1–7人工评审;本轮按用户给定AGENTS与已确认manual授权执行,不擅自切换规范。
**对阶段1源码判断的补充**:运行时字典已有持久化加载,优先读库内最新字典、缺失时才读种子;Runtime仍持有一个 `Dict` 并交给各项目World。故不能把“有持久化字典”当作“已有每项目独立扩展”。文件种子69类型/14阶段/9主题的数量,只证明该种子资产,不代表当前运行库实际词条数;本阶段没有读运行数据库。
内置解析器对旧DOC明确“不解析”,本轮14份DOC仍需要正式转换/解析路径。Microsoft提供独立的DOC二进制格式规范,因此将DOC当XML或仅提取可见文本不能证明表格/样式完整。[Microsoft MS-DOC规范](https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-doc/ccd7b486-7881-484c-a137-51170af7cc22)。这影响TT-T01/T02的可行性验证,不能跳过。
## 4. 28项需求的价值、可行性与符合度
工作量为相对评估,**不是工期或成本承诺**。高=同时涉及数据、写路径/恢复、权限或公开扩展;中=可局部复用但仍需明确契约和真实验证。当前实现缺口与要求符合度分别记录,源码存在不代表运行可用。
| 需求组及全部ID | 价值与现有基础 | 可行性/主要缺口 | 符合度 | 相对工作量 |
|---|---|---|---|---|
| TT-T01、TT-T02、TT-T03、TT-T04 | 用真实模板约束内容与格式;已有注册表和目录资产 | 44份资产逐块解析、适用性、固定版本/hash、实例绑定;14DOC完整性未验证,生成骨架不能算标准模板 | 需调整后符合;DOC路径待验证 | 高 |
| TT-N01、TT-N02 | 将资料、结论与依据组织为共同项目知识;已有切片、多挂载、结论/取代 | 现有共用Dict改为具有明确项目作用域的扩展合同;阶段/工作事项/主题有版本和审计,旧数据保真 | 需调整后符合 | 中–高 |
| TT-D01、TT-D02、TT-D03、TT-D04 | 不同项目按进展调整,且人确认后才生效;已有DocTree、状态机、TxProject | 递归内容块、稳定ID、结构提案/CAS/幂等、移动/更名/废止、审签影响;不能按标题当身份 | 需调整后符合 | 高 |
| TT-G01、TT-G02、TT-G03 | 能回答事实来源、合规证据链及影响;已有一般网与受控版本网 | 最新UN/SR/DI/设计/测试模板字段与现有15类受控节点映射;版本端点、直接/间接影响、来源主体与锚点 | 符合领域定位;映射需调整后符合 | 中–高 |
| TT-C01、TT-C02、TT-C03、TT-C04 | 让每个成员的日常工作基于项目最新有效依据;已有发布台账、检索/资源授权与Compose | 普通对话的自动项目依据入口、上下文预算/版本manifest、恢复/撤权刷新;个人Memory与@knowledge不能替代 | 需调整后符合;公开入口需核对/申请 | 高 |
| TT-A01、TT-A02、TT-A03、TT-A04 | 完整记录时间、人物、操作、内容、结果和影响;已有结构事件、操作ID/outbox、宿主命令审计 | 成功事件与失败尝试分语义、前后值/来源/当时影响、人物/任务关联、宿主项目级读面及披露、历史缺项诚实显示 | 需调整后符合;宿主读面待设计 | 高 |
| TT-U01、TT-U02、TT-U03、TT-U04 | 无需理解数据库或内部代码即可取证;已有四入口和唯一文件预览 | 业务操作摘要/结构化差异/对象名称/影响、可读筛选/历史、完整归组和按字段授权;不新增独立管理屏 | 符合DESIGN布局;读契约需调整后符合 | 中,受上游数据契约制约 |
| TT-V01、TT-V02、TT-V03 | 防止模板数量、mock和页面存在被误当用户目标已完成 | 44份对照、并发/失败/重启/撤权;两项目两成员真实模型与浏览器;精确pins及当前HEAD CI | 符合交付规则;本次业务验证NOT_RUN | 高 |
上述组覆盖28项已确认子需求,没有把高成本项移出本目标。最终优先级与处理结论在阶段3需求表确认,不由本阶段表格自动批准实施。
## 5. 成本、依赖与模块归属
### 5.1 成本依据
- 模板资产:44份逐文件内容核对,候选绑定涉及32个既有类型和12个新增/细分用途;这不是12个类型已经决定新增。其余37个既有类型本次没有对应的新标准资产,须保留兼容或缺项状态。
- 文档结构:仅30份DOCX就有 **199个表格对象、1504行、5731个含文字段落、809个标题候选**。计数包括封面、签署、目录、示例与重复内容,不等于正式要求数量;说明不能按几个H2批量生成替代语义核对。14份DOC的正式表格/格式规模尚未计入。
- 数据与恢复:涉及项目字典作用域、结构/内容版本、提案与确认、事件schema、重放、历史/导出截止和旧对象绑定。需要迁移/兼容与故障验证,不能按“只增加几个字段”估计。
- 公共链路:至少要评估自动项目工作上下文与宿主项目审计读取两个通用能力接缝,必要时还包括可信人物显示信息。下游不能直接读取Backend internal表,也不能给审计用户广泛账号管理权限。
- 真实验收:多人多项目、不同文档职责、撤权、恢复与模型实际依据使用都需要准备真实场景和可核查记录。模型样本数量、预算及正式测试环境在阶段5由用户批准;当前没有调用付费模型。
成本控制采用现有域模型/事务/读面、沿用四入口与唯一预览、复用在途导出/工作摘要、给模型短摘要后按相关性展开;不会通过取消递归结构、只处理少量模板或让用户手动@knowledge来降低成本。
### 5.2 依赖与归属
| 能力/接缝 | 主归属 | 现有可复用点 | 必须完成的评估/设计条件 |
|---|---|---|---|
| 标准模板语义、适用性、schema、发布和实例绑定 | RDM;原始材料来自Dev `.templates` | `templates.go/templates_gen.go`、DocTree、版本/审签 | 先保全原件与hash;发布结构须可审,不凭文件名替换现有docType |
| 项目字典、递归结构、结构提案和影响 | RDM领域与应用层 | `WorldFor`、一般/受控图、`TxProjectOp`及事件重放 | 同项目生效版本唯一;跨项目互不污染;固定对象与受控状态重新鉴权 |
| 普通工作自动取得项目依据 | RDM提供领域摘要/引用/权限,Backend负责通用注入/恢复/预算 | `Host.KnowledgeSearch`、已发布台账、检索资源授权、ctxasm/运行记忆端口 | 先确认现有注册组合能否满足;不足则在Dev申请可选公开能力,不能导入internal或直接改个人记忆表 |
| 结构审计、前后变化、影响与人可读投影 | RDM | 事件日志、operationId、inspection读服务 | 公共DTO与重放payload分离;成功与失败尝试区分;历史不补造字段 |
| 宿主命令/后台动作与项目审计关联 | Backend通用能力 + RDM领域读适配 | owner作用域命令审计、Host.Audit、outbox | 需要受信项目/主体/资源及字段披露合同,不能拿全owner审计列表当项目审计 |
| 审计与成员工作界面 | Frontend消费确定读契约;UI消费既有原语 | RdmAuditWorkspace、三栏、现有文件预览、tokens/MotionKit/Collapsible | 显示中文动作、人名/可辨账号、对象路径、差异/影响;不向客户端下发受限正文后再隐藏 |
| 公共扩展、tag与组合交付 | Dev/Backend/Frontend及RDM按各仓规则 | `pkg/extension`、可选接口惯例、pins/checks | 扩展申请四要素、兼容/隔离;基座tag发布仍由用户亲手执行;不能让RDM合入main时长期依赖未发布本地分支 |
本轮不会把项目/IAM、任务系统或通用数据存储整体替换。在本次复核的公开面中未找到项目上下文Provider和项目级宿主审计查询;具体符号或路径仍是阶段4设计问题,尚未批准新API。
## 6. 在途任务与重叠处理
以下是本次API读取时的真实开放状态,均 `merged=false`;不是“已经合入”。读取的PR head在文件清单核对前后保持一致。仅作依赖/重叠评估,不把PR说明、审批或CI声明当现行主干能力。
| 在途范围 | 已核验的PR与主要文件 | 与本目标关系及处理建议 |
|---|---|---|
| 审计导出/水位固定 | RDM #301:persist、export_artifact/report、cgraph_export、xlsx、plugin;Frontend #73:RdmAuditWorkspace/store/styles/workspaces;RDM #307、Dev #488负责pin消费 | 与TT-A/U/G历史取证、DTO、分页/导出语义耦合;优先复用该候选最终主干结果,设计阶段保留同一水位与授权模型,不能重复起另一套导出入口 |
| 快慢通道有依据的工作判断/来源 | Backend #193、Frontend #79、Documents #95、Dev #512:runtime/runmgr/上下文相关执行、任务来源、卡片/预览/contract | 与TT-C/A/U的任务依据、来源manifest、进度和显示重叠;复用其可信来源与同一任务卡,不能把未确认发现自动变成已确认项目知识;本次结构确认仍单独持久化 |
| 历史方案/交付状态回填 | Documents #89、Dev #489:原两树方案及恢复/账号方案状态 | 主要是文档状态重叠;本轮新需求记录与原方案的状态更新须协调,不能用旧正文或索引表示本目标已完成 |
| 账户事务与活动实例保护 | Backend #185、Dev #486/#482 | 对真实身份/审计/验收环境有依赖影响;不会重复实施账户事务、替换当前身份或操作运行实例 |
- [Agent-System-Backend #193](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/193):`5f834544b0b808cb16214a36725f2ae3cb90bfd4`
- [Agent-System-Dev #488](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/488):`334d2e2375095f3b4160ab232296f9c92065c565`
- [Agent-System-Dev #489](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/489):`3e7f0360087b126f41fa9ce18dbd1e53d0a8f067`
- [Agent-System-Dev #512](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/512):`e31443a8ff1f099f9b2ef320c295b0ddcdaf503d`
- [Agent-System-Documents #89](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/89):`b8df6f3c2a3180b06c61d2303bbfea9a3914f186`
- [Agent-System-Documents #95](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/95):`c7cb2d8d89aaef0329c9a8a2045fcd42abb36e39`
- [Agent-System-Frontend #73](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/73):`d9bb780384b16f661d71a5e6ad288a77426d9d98`
- [Agent-System-Frontend #79](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/79):`006c81567546deb1cbd95abbb7ca6a36f99241b2`
- [Agent-System-RDM #301](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/301):`6252f62524ef34360fdcdf8844d7e729378ffbfb`
- [Agent-System-RDM #307](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/307):`8ae52a6d9a4d8b60e875f9c56862f34dffed7705`
补充源码核对:Frontend #73候选主要新增概览导出,但其 `EventRow` 仍显示 `ev.op`、actor及截断detail;所以该在途工作并不覆盖本次“详细可读操作记录”。Documents #95候选设计将模型发现与可信依据/待确认判断分开;这是相关约束,不能将其“已批准设计”叙述升级为本轮模型验证或主干已交付能力。
没有看到上述开放清单中直接实现“44个新标准资产、项目字典独立扩展、递归结构提案、默认两树一网上下文、完整审计投影”的PR。此结论限于已核验的开放PR标题、变更文件与两份候选源码,不代表所有未推送工作都不存在;阶段5启动仍须与当前任务和新main重验。
## 7. 风险与处理边界
| 风险 | 影响 | 建议处理 | 当前状态 |
|---|---|---|---|
| 旧DOC转换只保留文字,丢表格、图片、样式及蓝字示例含义 | 44份标准模板完整性无法成立 | 先做E1受控解析/转换试验;每份有可核查差异台账,缺项不计完成 | 重大未知,E1待批准、NOT_RUN |
| 目录7阶段、既有14阶段及12个细分用途语义冲突 | 权限阶段被误映射、计划/报告或验证/确认混用 | 阶段3列逐项适配;阶段4冻结stage/type用途映射与版本 | 待设计;不凭目录名批量覆盖 |
| 全局库字典与各项目自由扩展混用 | A项目新增词条改变B项目或旧历史读取 | 项目作用域与版本权威、旧字典兼容/回放必须明确 | 源码缺口已确认 |
| 结构/正文确认同名不同版或并发修改覆盖 | 丢资料、半次操作、审签与影响错位 | 预期版本、整批事务、幂等、失败恢复及重放;基线正文仍受审签 | 机制可复用;新操作未实现 |
| 所有成员上下文走audit接口,或共享结构顺带读他人私域 | 普通工作被多余审计权限阻塞,或发生越权 | 工作读面/审计/正文/原件分别服务端授权;历史及恢复按当前权限 | 需补新读合同,不能放宽audit/read为捷径 |
| 自然语言审计只是前端翻译或模型自由重述 | 人物、内容、影响不完整或凭空产生结论 | 以持久业务事实产生确定摘要/结构化详情,未知显式未记录,候选与生效分开 | 当前DTO字段不足 |
| 已有项目升级直接重生成或自动替换模板 | 历史ID/内容/审批依据丢失 | 预览+显式确认,保全原版本、原件及取代关系;不能线上自动迁移 | 本轮迁移NOT_RUN |
| 在途PR/main或tag前进,使证据/组合失效 | 新候选错用旧CI,或RDM消费未发布基座 | 当前HEAD、来源和pins重验;tag双钥匙,实施/部署授权分别记录 | 阶段5–9门禁,不在本轮执行 |
## 8. E1受控试验提案(本次只写计划,未执行)
目的:回答“能否完整解析/转换本轮14份DOC的内容结构与关键格式,从而为44份新模板建立可靠内容契约”。此试验不实现产品功能,也不批准业务代码、共享现场写入、数据迁移或部署。
- **对象**:来源台账中固定hash的14份DOC;30份DOCX只作结构/样式对照,原件只读。先用用户需求、软件测试用例、采购技术说明三种复杂度不同的样本判断方法,再覆盖全部14份;样本成功不计整体通过。
- **环境**:独立临时目录和独立转换器profile,原件只读挂载,输出留在源码外,禁止运行文档宏和访问外部文档链接;转换进程不获得仓库/用户secret/运行库的写入或读取权限。试验所需软件优先使用已有可用能力;如确需获取,限可核验来源的隔离临时运行环境,不全局安装或修改服务。未能建立此环境则停止并报告缺项。
- **候选方法及依据**:优先验证LibreOffice headless导入DOC、导出DOCX,然后用OOXML提取章节/表格/样式/图片/页眉页脚/编号。其官方文档列出无界面转换、独立profile以及Word97–2003与DOCX过滤器;这是方法可行性依据,不证明本轮模板保真。[命令参数](https://help.libreoffice.org/latest/en-US/text/shared/guide/start_parameters.html)、[格式过滤器](https://help.libreoffice.org/latest/en-US/text/shared/guide/convertfilters.html)。当前PATH未找到LibreOffice,不能预写工具已就绪或依赖版本。
- **判据**:全部14份都有原件hash→转换器版本/参数→产物hash→内容/表格/合并关系/示例与固定文本/图片/关键格式核对结果;关键要求、表格列/合并和示例语义零静默丢失;差异有可查看依据及处理结论。输出非空、文字数量或转换器exit0不能作为通过。原件前后hash相同。最终输出保真要求若有调整须人工评审,不能以试验失败自行降低。
- **限制**:转换与自动核对最多60分钟;每份转换最多120秒;不调用付费模型、不上传材料到外部服务;遇宏/密码、损坏、不可定位字段或环境无法隔离即停止相应路径,保留证据。剩余人工格式确认的时间另行列明,不假装60分钟包含全部人工审批。
- **副作用与成果**:只创建可识别的临时转换产物、比较报告和SELF收据;原始模板及现有项目零修改。产物留在当前源码外记录目录供审核,未确认前不作为正式发布模板;回收临时环境先核对唯一成果已保存。
仅E1被明确批准后才运行;其结果用于阶段3–4的模板边界和方案设计,不代替正式产品验收。若用户选择先进入阶段3需求表,DOC完整性保持待核实,不能宣称已具备或在关键待核实项未处理时放行正式实施。
## 9. 当前出口与下一动作
本阶段已形成可评审的取舍与依赖记录:保留28项完整范围;推荐复用现有领域/平台而补齐缺口;不重写项目/权限体系;旧DOC路径通过E1验证;现有结构、数据与三权版本保真;在途导出/工作发现接口协调复用;必要通用能力按公开扩展申请推进。
**等待用户评审阶段2评估和E1范围**。推荐确认取舍并批准源码外E1试验,试验完成后形成阶段3需求表;也可以确认评估、先整理需求表而保留E1待批准。两个选择都保持manual授权和共享现场由原负责人收尾,不重新询问DYN-01或阶段1范围。
阶段4方案、阶段5实施/测试计划、阶段6–7产物及验收仍未评审;代码Review/PR合入按既有阶段8–9门禁,清理另审。软件测试、模型对照、浏览器、CI、转换试验、生产数据操作和部署本轮全部NOT_RUN。文档检查与源码/API核对仅SELF。
本记录暂存源码外。原负责人处理共享现场后,本任务经新的唯一precheck收据取得READY,再建立登记worktree并把阶段1原对象、用户批准、阶段2本记录及完整原始收据导入Documents/任务卡/PROJECT入口;导入不回填不存在的通过结论。
@@ -0,0 +1,293 @@
# 两树一网阶段3:需求与验收条件 r1
记录时间:2026-10-14T10:22:37.191427+08:00;需求负责人/评审人:用户;编写:Codex。**待阶段3人工评审**。阶段1和阶段2取舍已批准;E1按用户“批准”执行完毕,结果待评审。本文形成可判定需求,不批准API、迁移、具体实现或正式测试计划。
## 本次评审范围
保留已确认的28项需求和44份最新Word模板全部范围,不以固定层数、几个模板、手动知识查询或操作码翻译替代目标。动态变更保持DYN-01:提出变更,确认后应用。需求主表在[Dev任务卡](../../../../../.task/feature-rdm-two-trees-latest-templates.md),每行引用本文对应ID的详细验收条件;当前状态以[主记录](../../proposals/2026-10-14-rdm-two-trees-latest-templates.md)为准。
处理结论均提议“纳入本增量”,尚待本阶段确认。P0是数据/权限/版本/可用依据及验收的前置项;P1是依赖P0形成完整业务价值的必做项,不表示可取消或本目标之外。具体分批、工时及先后顺序由阶段5计划决定。
输入沿用[阶段1原对象](rdm-two-trees-requirements-r1.md)、其附录A的44文件绑定候选、[阶段2评估](rdm-two-trees-stage2-evaluation-r1.md)及已保存源码快照。32个既有类型与12个细分/新增用途为候选:全部用途需覆盖,但12个是否新增独立类型、子类型或其他表达留阶段4决定。四份字节相同的阶段评审模板保持用途独立;其余无新模板的既有类型继续兼容。
## E1结果及本阶段处理
[E1结果报告](/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/e1-20261014-091421/REPORT-r1.md)及全部原始产物留源码外。14份均转换成功,148个表格/1127行的同引擎往返比较一致;原件hash未变。但有分页7→6、图形/文本顺序变化、批注/修订混入和预览中文缺字;另有49字符片段仍不能定位。**保真判据未通过**,不能发布为可无损替换的标准模板。
推荐本阶段确认的是“原件保全、转换稿仅候选、未核对不发布、44份内容/格式要求不降级”这些需求约束。阶段4须处理有效内容与图形/修订解析路线、目标字体/渲染基线和逐模板核对方法;正式实现计划放行前关闭关键解析未知或明确经人工批准的替代路线。此次批准不自动授权第二轮转换试验、全局安装软件或替换模板原件。
## 逐项验收条件
所有条目当前的产品验收结果均为NOT_RUN。E1和源码检查仅为可行性/差距证据,不代替下列验收。
<a id="tt-t01"></a>
### TT-T01 44份模板登记与来源保全
- 优先级:P0;符合度:需调整后符合;E1保真待解决;处理建议:纳入本增量(待确认)。
- 依赖:原44文件清单;E1。
- 验收条件:44份均绑定稳定资产ID、原文件名/路径、真实格式、hash、阶段用途、解析器版本及覆盖/缺项;同字节的四份阶段评审模板保留独立用途。30 DOCX、14 DOC逐份可查,解析失败不得冒充已发布模板;已有69类型中无本次标准资产者保留并显示缺项。
- 验证方法:逐文件清单与原件hash核对;错误格式、缺字、损坏及解析失败拒绝发布;检查原件可回取。
<a id="tt-t02"></a>
### TT-T02 内容要求、表格与示例完整
- 优先级:P0;符合度:需调整后符合;E1保真待解决;处理建议:纳入本增量(待确认)。
- 依赖:TT-T01;E1未决项。
- 验收条件:逐模板表达多级章节、固定文本、填写说明、字段类型/单位/条件、表格列与合并、重复块、附件和图形锚点;示例/批注/历史修订与有效要求分开。用户需求保留12组,UN/SR/DI及测试字段完整;不得仅生成标题或把蓝字示例填成项目事实。结构及可用格式通过原件对照后才可发布。
- 验证方法:44份逐项对照表;至少包含嵌套章节、合并表格、重复用例、图形、批注/修订样本;专业语义人工核对,格式在中文可读目标环境验证。
<a id="tt-t03"></a>
### TT-T03 项目适用性与裁剪
- 优先级:P1;符合度:需调整后符合;处理建议:纳入本增量(待确认)。
- 依赖:TT-T01/T02;项目范围。
- 验收条件:每个内容要求具有必需/可选/条件适用规则及依据;软件、硬件、无菌等项目可形成不同结构。条件未知显示待确认;不适用保留理由、责任人和批准记录,不删除要求以抬高完成率;成员可补充项目特有要求。
- 验证方法:至少两种差异项目;未知条件、条件变更、不适用拒绝/确认场景;核对必需项及进度分母。
<a id="tt-t04"></a>
### TT-T04 模板、实例与文档版本绑定
- 优先级:P0;符合度:需调整后符合;处理建议:纳入本增量(待确认)。
- 依赖:TT-T01/T02;TT-D02/D04。
- 验收条件:模板定义、项目实例、文档历史版分别有身份与版本,保留templateId/version/hash;升级展示新增/删除/语义和适用性差异,确认后应用。原实例/原历史仍回指旧模板;升级不自动覆盖正文或批准受控版。
- 验证方法:旧实例+新模板、拒绝升级、确认升级、并发升级及历史回查;确认链可追溯。
<a id="tt-n01"></a>
### TT-N01 项目知识及问题组织
- 优先级:P1;符合度:需调整后符合;处理建议:纳入本增量(待确认)。
- 依赖:来源/确认/发布合同;TT-G03。
- 验收条件:笔记树覆盖目标、资料切片、会议结论、需求约束、方案、风险、验证及转换确认依据;知识唯一ID可多挂载。保存来源/版本/适用范围/状态,结论取代有链;问题、冲突、假设及缺项可关联节点,不冒充已确认事实。
- 验证方法:同知识多挂载、撤挂、软删除、结论取代、冲突未决和恢复;原件页/段/表或发言锚点可定位。
<a id="tt-n02"></a>
### TT-N02 项目独立字典与扩展
- 优先级:P0;符合度:需调整后符合;当前共用Dict;处理建议:纳入本增量(待确认)。
- 依赖:现有字典兼容;TT-D03。
- 验收条件:项目可以增加/调整阶段、主题、工作事项、子系统、节点类型及有语义的扩展字段;两树一网使用一致的项目版本。项目A更名或扩展不改变B与全局种子;旧对象与标签引用可回查,废止保留历史。
- 验证方法:两项目同名异义字段、项目扩展和更名、重启加载、旧数据回放;未知字段与非法类型验证。
<a id="tt-d01"></a>
### TT-D01 递归文档节点与稳定身份
- 优先级:P0;符合度:需调整后符合;现有层级不足;处理建议:纳入本增量(待确认)。
- 依赖:TT-T02;TT-N02。
- 验收条件:支持阶段、文档、多级章节、段落/字段/表格/重复项/附件的递归组合;稳定ID与父节点、排序分离。重名、改名、移动不改变身份和引用;防循环/跨项目父子错误。支持未开始、素材不足、草稿、待确认、评审中、已批准、依据变更待复核、不适用等可解释进度。
- 验证方法:至少五层混合节点、重名章节、重复表格行组、附件及移动;循环拒绝与历史引用保持,进度按有效要求统计。
<a id="tt-d02"></a>
### TT-D02 动态结构提案与确认
- 优先级:P0;符合度:需调整后符合;DYN-01已确认;处理建议:纳入本增量(待确认)。
- 依赖:TT-D01/D03/D04;可信证据。
- 验收条件:新资料、需求变化、阶段推进、缺项、模板升级或成员主动整理可产生提案,列出具体差异、理由、来源、范围、直接/间接影响与风险。确认前有效结构不变;可接受、修改后接受、拒绝;保存提案与实际确认版本,重启后继续。
- 验证方法:各触发源覆盖,接受/改后接受/拒绝/取消及重启;普通成员与无权限主体;界面和工具均不得绕过确认。
<a id="tt-d03"></a>
### TT-D03 原子、并发、幂等与恢复
- 优先级:P0;符合度:需调整后符合;复用现有事务/重放;处理建议:纳入本增量(待确认)。
- 依赖:当前结构与权限版本;事件合同。
- 验收条件:确认时校验当前权限、项目、预期结构/内容/模板版本及受控状态;旧版本冲突返回可读差异。结构变更及成功事件整批提交或均不生效;同幂等键重试不重复,异参同键拒绝;故障恢复不产生半棵树、孤立边或重复业务效果。
- 验证方法:两人并发确认、确认时撤权、事务各提交边界故障、超时后重试、进程重启重放;比较业务结构和审计水位。
<a id="tt-d04"></a>
### TT-D04 文档职责、版本与审签
- 优先级:P0;符合度:符合现行三权,须补结构联动;处理建议:纳入本增量(待确认)。
- 依赖:现有文档状态机/IAM;TT-D02。
- 验收条件:结构确认权限与编制/审核/批准职责分开;实质变更已批准正文或要求时形成新候选并遵守现行重审。保留原批准版、职责和签署证据;普通结构确认不能自动批准内容,项目管理权不自动取得文档职责。
- 验证方法:草稿/评审中/已批准三状态×各职责;正文和要求变更;HTTP、工具、后台恢复同规则。
<a id="tt-g01"></a>
### TT-G01 来源网与受控证据链
- 优先级:P1;符合度:需调整后符合;复用两类现有图;处理建议:纳入本增量(待确认)。
- 依赖:TT-T02/D01;受控类型映射。
- 验收条件:覆盖资料→结论、模板→章节、UN→SR→DI→设计→验证、风险→控制→需求/实现/验证、软件需求→架构/详设→三级测试→结果及输出→转换/确认。一般来源边和受控边语义分明,候选/已确认/缺项可辨;不得用日志数量代替覆盖率。
- 验证方法:每条链至少一条完整及缺边样本;候选不得满足正式覆盖,回查具体端点及版本。
<a id="tt-g02"></a>
### TT-G02 升版影响与复核
- 优先级:P0;符合度:需调整后符合;端点已有版本语义;处理建议:纳入本增量(待确认)。
- 依赖:TT-G01/D04;分析水位。
- 验收条件:受控边绑定确切端点版本;升版不把旧验证自动视为新版有效。显示直接/间接影响、待复核与缺口、分析范围/截止;当时记录影响和当前重算影响分别标明。分析被截断/失败需可见,不声称影响为空。
- 验证方法:端点升版、关系失效、循环关联、大图预算截断、历史水位;原影响快照不被当前分析覆盖。
<a id="tt-g03"></a>
### TT-G03 来源主体和可定位证据
- 优先级:P1;符合度:需调整后符合;处理建议:纳入本增量(待确认)。
- 依赖:可信来源字段;权限读面。
- 验收条件:区分人工、规则、模型与系统来源;记录上传/产生/确认者及原件/模板/知识/章节/表格/发言锚点。网络来源保留URL、查询、获取时间和实际引用;缺少来源显式标明,不编造;引用定位与版本一致。
- 验证方法:各来源类型、失效外链、删改对象、缺失页码和权限撤销;正文链接按当前权限检查。
<a id="tt-c01"></a>
### TT-C01 普通工作自动取得项目依据
- 优先级:P0;符合度:需调整后符合;公开入口待设计;处理建议:纳入本增量(待确认)。
- 依赖:RDM领域提供方;Backend通用上下文接缝。
- 验收条件:同项目成员在普通任务/会话无需@knowledge,即取得当前有权使用的项目范围/阶段、任务要求、相关已确认结论、文档和来源;不能仅注入目录名或个人Memory。实际模型输入和产出引用能证明使用项目依据;无相关依据明确说明。
- 验证方法:两项目两成员各自普通任务,包含有/无已发布依据;检查实际输入manifest和输出锚点,配真实模型前后对照。
<a id="tt-c02"></a>
### TT-C02 相关性、预算与渐进读取
- 优先级:P1;符合度:需调整后符合;处理建议:纳入本增量(待确认)。
- 依赖:TT-C01/C03;预算合同。
- 验收条件:先提供任务相关摘要及稳定引用,再按需读取细节;不每次全量读取所有文档。说明召回范围、水位、排序/预算、裁剪/遗漏和未决冲突;模板作为约束,来源中的指令仅为数据。无关资料不能挤掉必要任务要求。
- 验证方法:长文档/多来源超预算、矛盾结论、检索无结果及不可信来源指令;记录实际裁剪原因与按需读取。
<a id="tt-c03"></a>
### TT-C03 共享、私域与当前权限
- 优先级:P0;符合度:符合现行IAM边界,须补全链路;处理建议:纳入本增量(待确认)。
- 依赖:可信成员/资源/职责权限;TT-C01。
- 验收条件:只跨成员共享已确认/发布且当前可用的项目知识;个人对话、草稿、原件、受控正文各自鉴权。同项目身份不等于全读权;跨项目、任务切换、撤权后新输入不得夹带无权正文,后台恢复和工具也执行相同校验。
- 验证方法:两项目、两个普通成员及不同文档职责;恶意projectId/resourceId、共享撤销、成员移除、缓存/恢复/历史对话带旧引用,检查模型实际输入。
<a id="tt-c04"></a>
### TT-C04 实际上下文清单与刷新
- 优先级:P0;符合度:需调整后符合;关联在途工作来源合同;处理建议:纳入本增量(待确认)。
- 依赖:TT-C01/C03;任务/run与水位。
- 验收条件:记录实际提供给模型的对象/版本/hash、权限及共享范围、检索范围、水位、摘要/裁剪和任务关联。新任务/项目或任务切换/相关有效变更/后台恢复时刷新;执行前重验已撤权或已失效依据,不以计划读取列表代替实际输入清单。
- 验证方法:注入后升版/撤权、恢复与切换、读取失败/重试;对照实际模型输入、输出引用和可读审计。
<a id="tt-a01"></a>
### TT-A01 业务操作覆盖完整
- 优先级:P1;符合度:需调整后符合;覆盖矩阵固定;处理建议:纳入本增量(待确认)。
- 依赖:阶段1§7.1;宿主审计扩展。
- 验收条件:对模板/结构、资料/知识、文档、需求/风险/测试/关系、成员/权限、智能体/后台工作六类操作建立逐动作覆盖矩阵;每格有事件/尝试证据或说明不适用。授权查看/下载/导出和拒绝访问按策略记录;不把UI悬停等噪声当完整性。
- 验证方法:逐动作驱动并定位对应记录;宿主未覆盖面必须显式列出,不能用RDM事件总量冒充全覆盖。
<a id="tt-a02"></a>
### TT-A02 时间人物内容和影响事实完整
- 优先级:P0;符合度:需调整后符合;现有DTO信息不足;处理建议:纳入本增量(待确认)。
- 依赖:TT-A01/G02/G03;事件schema。
- 验收条件:按阶段1§7.2记录适用的开始/结束/生效/确认时间及时区精度,稳定身份和当时名称/职责,发起/执行/确认链,项目/任务/run/operation/batch因果关系,对象标题路径及前后版本、差异/理由/依据/原件hash、结果错误及实际影响,schema和水位;缺项明确。凭据和未授权原文不得因完整审计被泄漏。
- 验证方法:更名/离职账号、人工+系统执行、多对象操作、敏感字段、未知历史值;对照不可变前后版与实际生效结果。
<a id="tt-a03"></a>
### TT-A03 成功、失败、拒绝和取消语义
- 优先级:P0;符合度:需调整后符合;处理建议:纳入本增量(待确认)。
- 依赖:TT-D03;尝试与业务事件分离。
- 验收条件:成功事件与业务提交一致;失败/拒绝/取消保留尝试、错误类别、发生时间、实际副作用及恢复状态,不成为已生效结构事件。等待确认与部分完成可辨;重试关联同一业务操作且不重复计算效果。
- 验证方法:无权、并发冲突、提交前/后断开、跨系统部分失败、用户取消和重试;业务事实与展示状态一致。
<a id="tt-a04"></a>
### TT-A04 宿主关联与旧历史诚实出口
- 优先级:P0;符合度:需调整后符合;公开宿主读面待设计;处理建议:纳入本增量(待确认)。
- 依赖:Backend通用审计接缝;RDM投影。
- 验收条件:宿主命令/模型/后台与RDM操作按真实可信项目/主体/资源和run关联;不能用owner全量审计冒充项目审计。跨宿主投递可恢复且状态明确;旧记录缺少姓名/内容/影响时显示当时未记录,不能用当前值或模型补造。
- 验证方法:投递失败/恢复/重复,跨项目owner,旧事件schema及无字段样本;校验真实关联和缺项展示。
<a id="tt-u01"></a>
### TT-U01 可读摘要与结构化详情
- 优先级:P1;符合度:符合DESIGN方向;DTO需调整;处理建议:纳入本增量(待确认)。
- 依赖:TT-A02/A03;现有审计入口。
- 验收条件:默认按一次业务操作显示中文动作、可辨人物、时间、对象标题/路径、结果和影响摘要;展开是前后差异、理由、确认链、证据与影响清单。原始JSON、base64、内部op码不可充当业务记录;未知动作有诚实可读兜底,不让模型编造解释。
- 验证方法:正常/失败/未知/旧数据四类记录的真实页面;用户能回答谁何时为何改了什么影响谁,检查未下发受限payload。
<a id="tt-u02"></a>
### TT-U02 可读对象与证据跳转
- 优先级:P1;符合度:需调整后符合;沿用唯一预览;处理建议:纳入本增量(待确认)。
- 依赖:TT-G03/U04;标题/路径读契约。
- 验收条件:来源、关系含义、直接/间接影响和历史对象用标题/路径/版本可识别;有权时进入现有对象详情及唯一文件预览,无权/已不存在时给明确状态。技术ID可辅助定位但不能取代业务名称。
- 验证方法:文件页/章节/表格锚点、改名/移动/废止对象、权限变化;禁止重复预览界面和失效空白跳转。
<a id="tt-u03"></a>
### TT-U03 筛选、归组、分页与历史
- 优先级:P1;符合度:需调整后符合;复用导出水位在途成果;处理建议:纳入本增量(待确认)。
- 依赖:TT-A02/A04;事件seq与读水位。
- 验收条件:按时间、人物、业务动作、对象、结果和任务筛选;同一操作多事件/重试可完整展开,跨页不拆失或重复。历史按可读时间/正式版本选择并保留完整批次截止;项目/用户/筛选/历史切换后丢弃迟到响应,异步状态仅一个所有者。
- 验证方法:跨页大批次、迟到响应、空列表/错误/加载、筛选往返、历史/当前切换及权限变更;导出沿用同一范围与水位。
<a id="tt-u04"></a>
### TT-U04 审计权与正文披露分离
- 优先级:P0;符合度:符合现行audit.read/正文权规则;处理建议:纳入本增量(待确认)。
- 依赖:当前IAM;服务端字段投影。
- 验收条件:审计入口需要audit.read及相应资源许可;结构元信息、正文差异、历史原件、导出分别按当前权限制定披露。管理员/创建者或audit.read不得自动得到文档正文;限制在服务端完成,客户端隐藏不能代替。
- 验证方法:可审计无正文、可正文无审计、历史撤权、导出/搜索/预览/模型同规则;直接检查网络响应无泄漏。
<a id="tt-v01"></a>
### TT-V01 需求到固定对象证据映射
- 优先级:P0;符合度:符合交付规则;正式验证未执行;处理建议:纳入本增量(待确认)。
- 依赖:全部需求;精确组件与配置。
- 验收条件:每个纳入需求对应方案/工作项、正常/异常/边界/回归检查及当前对象结果;44模板有逐项对照,结构并发/原子/重放/旧数据/撤权有真实故障路径。明确SHA/pins/配置及SELF、REPLAY、GATE;缺项NOT_RUN不能以文档陈述补齐。
- 验证方法:独立最小重放及故障注入;收据通过evidence记录;需求矩阵不得用非当前候选旧绿灯放行。
<a id="tt-v02"></a>
### TT-V02 真实模型行为前后对照
- 优先级:P0;符合度:符合行为面交付规则;预算阶段5确认;处理建议:纳入本增量(待确认)。
- 依赖:TT-C/D02;真实模型环境。
- 验收条件:用相同任务集比较改前/改后实际项目依据使用、召回、错误引用、失效处理及结构提案确认。两项目两成员、普通工作无@knowledge、权限拒绝/冲突/恢复均有样本;记录模型/配置/输入manifest/输出和判定,不以mock替代。
- 验证方法:阶段5确定可复核样本数、模型及费用上限;不能调用时标NOT_RUN并保留验收缺项,不声称行为改善已验证。
<a id="tt-v03"></a>
### TT-V03 真实界面与当前HEAD组合验收
- 优先级:P0;符合度:符合交付规则;正式验证未执行;处理建议:纳入本增量(待确认)。
- 依赖:TT-U;精确pins;阶段7环境。
- 验收条件:真实浏览器完成两项目两成员流程:初始化/扩展、提案确认/拒绝、普通任务依据、升版影响、完整可读审计及权限回归;使用现有三栏/四入口/唯一预览与UI令牌、MotionKit、Collapsible。精确候选的相关测试、make test/build和当前HEAD CI齐备。
- 验证方法:浏览器可见结果及网络权限检查;设计守护、精确组件组合测试;CI运行链接/执行身份/SHA核验,部署另按授权。
## 设计前必须保留的决策与实施停止条件
| 事项 | 当前依据/推荐处理 | 责任与关闭节点 |
|---|---|---|
| DOC及最终格式保真 | E1部分可行、验收未通过;原件不替换、候选不发布;需可读字体环境及逐项内容核对,未定位差异保留 | Codex准备路线/必要试验范围,用户在阶段4确认;关键路线未明确不得进入正式实施 |
| 阶段/type和DI等受控映射 | 44项用途全部保留;不按文件名或YAML顺序误选type | RDM领域设计,阶段4给逐项映射及旧数据兼容 |
| 项目扩展、递归节点、确认状态 | 范围已确认;具体schema/事件/迁移和冲突语义未设计 | RDM,阶段4;不能以全局字典修改替代项目独立扩展 |
| 普通工作上下文和项目宿主审计 | 领域策略属于RDM,通用注入/读取属于Backend;必要公开扩展按四要素申请 | Dev/Backend/RDM,阶段4;不读Backend internal或owner全量审计绕过契约 |
| 旧数据/历史/披露 | 旧字段不补造,受限正文不先传客户端;升级/恢复保持版本与身份 | RDM/Backend/Frontend,阶段4;迁移和正式测试另有批准计划 |
| 在途重叠 | 沿用阶段2快照作为历史依赖,不宣称当前仍开放;审计导出/水位、快慢通道来源优先协调复用 | 阶段4/5开始核对最新main/PR和公开契约,不重建相同入口 |
| 模型、浏览器和正式环境 | 真实任务对照必需,费用与样本/环境尚未批准 | 阶段5提交具体预算及测试计划;当前不运行付费模型、生产数据迁移或部署 |
本表没有把关键未知写成已解决。可确认需求及上述约束后开展方案设计;方案或试验发现需求范围、权限或验收条件需要改变时,回到本表重审受影响项,不降低既定目标。
## 人工评审出口
推荐确认28项全部纳入、优先级/验收条件及E1的风险处理边界,随后进入阶段4方案设计。阶段4产物应提供推荐方案/备选、职责与公开契约、数据/权限/历史兼容、失败恢复及保真后续验证安排;阶段4仍由用户批准后再形成实施计划。
本稿不是业务完成声明。业务代码、数据库迁移、正式模型/浏览器/CI、PR合入及部署均NOT_RUN。需要修改时按需求ID反馈;DYN-01、阶段1范围和阶段2取舍不重复询问。
@@ -0,0 +1,426 @@
# 两树一网阶段4:方案设计 r1
记录时间:2026-10-14T10:50:15.042190+08:00。状态:待人工评审;需求负责人/评审人:用户;方案编写:Codex。当前授权到方案设计,不包含业务实施、追加转换试验、运行库迁移、部署或发布。
本文承接已批准的[阶段3需求与验收条件r1](rdm-two-trees-stage3-requirements-r1.md),对象SHA256 `d685b9de14e1bd7c19a2a94dfab234c5a942f1281acd113ea924d24887246e15`。用户在本聊天 `call_87e7dc7218214a27a6a6d4911a44a387` 选择“确认阶段3,进入方案设计(推荐)”,同时接受原件保全、转换稿仅候选、保真问题未解决不发布。阶段1/2原对象、28项需求及44份模板范围保持。
## 1. 推荐方案与取舍
推荐在现有RDM领域模型、事务事件、持久提案、文档三权和检查工作区上扩展。模板与实例共用一套递归内容块合同;每项目拥有固定基础版本及独立扩展;资料和进度触发结构提案,成员确认后原子生效。基座提供按可信项目/主体调用领域上下文的入口及项目宿主审计读取能力。RDM将业务事件、操作尝试和宿主回执投影成可读操作记录,Frontend直接展示结构化事实。
| 路线 | 收益与成本 | 结论 |
|---|---|---|
| 扩展现有领域、提案和公开接口 | 保留已有项目、三权、事件重放与文件预览;需要完成递归模型、项目版本及兼容迁移 | 推荐;覆盖完整目标 |
| 以通用知识图谱/动态表单平台整体替换 | 可配置面大,但要重建现有审签、权限、重放、模板与迁移语义,跨仓成本高 | 不采用;本目标不需要替换整套平台 |
| 保留固定树,仅补标题/模板文本和审计文案 | 改动少,无法表达项目独立扩展、确认前后版本及真实成员工作依据 | 不满足已批准需求 |
方案以“已登记、可解析、语义已核对、可发布、实例已确认、文档已批准、文件已生成”分别表示状态,禁止用一个完成标志相互替代。P1需求与P0均在本目标内;没有把未解决的保真和权限问题移出范围。
## 2. 当前源码及在途工作依据
本轮SELF只读快照见同目录 `stage4-sources.json`,记录查询时间、源码SHA、文件hash、PR状态和DHF本地候选hash;不是运行验收。源码摘录留源码外,不在Documents复制业务源码。
| 对象 | 核验基线/关键位置 | 设计依据 |
|---|---|---|
| Dev | main `f00165e8d71e4dc8ba0ceb7dc50c1a8a3deb6d60`;本任务已合并该基线 | 逐阶段评审和公开模块边界继续有效 |
| RDM | main `6fcb256205c2384abed35d3b6ab96ca7216e9297`;`domain/doctree.go`、`rdmapp/structure.go` | 现有Doc/Section为平面章节;装载按类型/标题去重,不能承载任意递归身份 |
| 字典/事务 | `runtime.go`、`labels.go`、`tx.go` | Runtime.Dict传给各项目;已有TxProjectOp、opOnce、事件与审计outbox,应复用并补版本CAS及隔离 |
| 上下文 | Backend main `5d5fc9891c0eb8994545ccb8b740535d9b99fb0e`;`runtime/llm.go`、`ctxasm`、extension | 普通知识注入仍依赖@knowledge;个人Memory不替代共享项目依据;公开面没有本方案所需Provider与项目宿主审计查询 |
| 审计 | RDM `inspection.go`及Frontend main `eb2d6d32f9323094d568bc9d80b4e5ed4f0af25b`的RdmAuditWorkspace | 当前按事件页内归组,DTO以op/actor/detail为主;需操作级完整分页与字段披露后的事实投影 |
| Documents/UI | main分别为 `7bd4e17827d4c7c88647bf3c9199c495b60cb107`、`2c4322ef56df64ad72f65907d25b048a74bb5ffc` | 原两树方案状态回填已合入;沿用DESIGN、令牌、MotionKit、Collapsible及唯一文件预览 |
### 2.1 DHF专项的单一合同
发现并读取了DHF专项方案r0.1,SHA256 `f99e1424a9bb86f68ad6de91657102a36004c61fb0f36c8427e913d9e0cf9643`,以及 `Agent-System-RDM-wt-feature-dhf-template-assets` 的U1候选。该任务卡记录用户已批准实施U1和独立E1/E1-R1;这是其他任务的授权记录,不扩大本任务权限,也不证明其代码已合入或保真通过。
本方案采用以下分工,避免双方互等或各建一套:
- **DHF专项维护** `TemplateAsset`、资产目录/原件谱系、`ContentBlock`基础合同、WordSlot/渲染包及发布校验;44份台账唯一落在RDM模板资产目录。
- **本专项维护**项目字典、内容块的项目实例/修订、结构提案/CAS/影响、普通成员上下文和完整审计。对ContentBlock所需字段作为同一合同的版本化扩展提交给DHF路径,不新建第二种模板树。
- 文档实例化、模板绑定、生成采纳与整文冻结接口由本专项给出领域约束,DHF生成/导出消费;RDM是共同代码owner。阶段5以确定依赖提交/PR划分非重叠工作项,不把未提交候选当可消费版本。
- 当前候选基础类型已有section/paragraph/table/row/cell/field/attachment、语义分类、WordSlot和稳定ID;还缺图形锚点、通用重复组、字段类型/单位/校验等本需求的表达。须在同一合同补足,不能因现有验证器只接受重复row而裁掉其他重复块。
- 若DHF的v1合同尚未发布,在唯一合同中共同补齐后冻结;若届时已有发布消费者,则升级schema并提供兼容解码,不能以新增字段为名让旧严格读取器静默丢块。
- 初步限制为深度64、每模板10000块的候选实现仅是资源保护,必须通过44份实测定限;超限给明确错误与调整入口,不静默截断或将固定层数变成业务规则。
- 本任务E1与DHF的E1/E1-R1使用不同运行记录。只有输入hash、工具版本、差异与人工结论逐项对应才能复用;不以另一任务“已试验”覆盖本任务尚未解决的差异。
### 2.2 其他在途依赖
本轮API核验:审计导出/水位RDM #301/#307、Frontend #73、Dev #488仍开放;工作发现/来源Backend #193、Frontend #79、Documents #95、Dev #512仍开放。Documents #89与Dev #489已合入,已进入本轮文档基线。完整head及链接见快照。
本方案复用它们最终接受的导出截止、可信来源和任务卡合同;不另建导出或后台工作入口。它们尚未覆盖项目独立字典、默认项目上下文和完整审计读投影。阶段5开始及消费前重验当前main/PR,不把本快照当永久状态。
## 3. 权威对象与职责
```mermaid
flowchart LR
S[原始模板与资料] --> A[DHF不可变模板资产]
A --> P[RDM项目字典与递归实例]
K[授权资料与已确认结论] --> P
P --> Q[结构或内容提案]
Q --> H[成员确认与当前权限校验]
H --> T[项目事务: 版本 CAS / 事件 / 回执]
T --> P
T --> G[一般来源网与受控版本网]
P --> C[RDM项目上下文提供方]
G --> C
C --> B[基座预算组装与实际输入清单]
B --> W[成员普通工作]
T --> U[可读审计投影]
B --> U
U --> F[现有审计工作区]
```
| 对象 | 权威数据及不变量 |
|---|---|
| 模板资产版本 | templateId + version;原件、规范化DOCX、结构、渲染包各有完整hash;发布状态与评审证据绑定确切字节,不以文件名或字典序选最新 |
| 项目字典版本 | projectId + dictionaryRevision;固定seed版本加项目扩展;ID与显示名分离,旧key别名可读;两树一网共同引用同一版本 |
| 文档实例 | docId + projectId + templateBinding;实例有自己的节点ID,另存templateBlockId;一个模板可有多个同类实例,标题不参与身份判定 |
| 递归内容 | 同一ContentBlock合同的实例视图;结构revision与内容revision分离;约束/说明/示例与成员实际填写值分离 |
| 提案 | proposalId + revision + kind + baseVersions + bodyHash;草稿/内容/结构使用同一提案生命周期与确认入口;批准永远针对一个不可变提案版本 |
| 知识 | 唯一知识ID及不可变来源/版本;挂载为关系,撤挂不删除知识本体;发布状态和索引投递状态分别记录 |
| 追溯关系 | 边ID、语义、来源、确认状态、端点确切版本;受控网绑定证据,不把一般关联当正式验证 |
| 业务操作 | operationId + requestDigest + actor/project/resource范围;事件和操作成功回执同事务,尝试/失败独立留痕 |
| 模型工作依据 | 每次实际调用的ContextManifest,关联run/step、对象版本、内容摘要hash、预算裁剪及授权水位;不记录模型私有推理 |
RDM提供领域策略、对象和事件;Backend提供通用身份、上下文组装、执行/宿主审计及公开扩展。Frontend只消费授权后的DTO;UI仅复用既有原语。数据库仍走当前RDM store适配,不在本次替换团队存储架构或直接读取Backend internal。
## 4. 模板资产、内容块及实例
### 4.1 从原件到发布
流程为“登记原件 → 解析/规范化候选 → 内容分类与差异核对 → 确认用途/适用性/槽位 → 发布不可变版本”。运行时只消费已发布包,不增加常驻LibreOffice服务。准备工具在隔离环境运行,原件只读,禁宏/外部内容加载;未获批准不继续E1以外的试验。
资产状态沿用DHF候选 `needs-review / blocked / published / retired`。解析exit0不是发布条件;缺原件、hash不符、未决关键差异、用途未定、示例分类未确认、渲染槽位歧义均阻止发布。已发布版不原地改包,修正产生新版本。
44份逐文件范围与候选类型沿用阶段1附录A;原件与DHF台账按hash及逻辑用途核对。32个既有类型保留;12个新增/细分用途必须独立可辨,建议用途不同的计划/报告、详细设计、集成测试及阶段记录使用独立docType,最终键在阶段5前与共同合同对齐,不把“12”当固定数据库迁移数量。
系统需求使用明确的研发用途绑定,不按 `pm_system_reqs / rd_system_reqs` 注册顺序选择。《验证确认报告F02》的过程IQ/OQ/PQ用途、有效期与货架寿命边界、企业固定项/项目示例项等必须在资产评审单裁定;无裁定保持待发布。四份同字节评审模板保留四个阶段用途。无新资产的其余既有类型继续标“历史骨架/待标准模板”,不冒充本批已覆盖。
### 4.2 递归表达与语义
基础块沿用DHF的ContentBlock,不另建模板AST。补充合同包括:
- section、paragraph、field、table、row、cell、attachment及figure/reference;允许可重复的有名group,块种类决定允许的子种类,禁止无约束任意嵌套。
- 稳定ID、文档顺序、内容要求、输入证据条件、必需/可选/条件适用、字段类型/单位/枚举/长度/数值范围、重复基数、表格合并与覆盖单元约束、附件类型及证据锚点。
- semantic区分fixed/instruction/example/placeholder/signature及历史批注/修订引用。批注和未采纳修订保留在来源侧,默认不实例化为有效要求或项目事实。颜色和斜体只作分类线索。
- 源锚点至少含原件hash、OPC part或DOC位置、段/表/单元/图形与可读路径。图形保留原内容及位置关系;无法可信展开的图形保持不透明证据块和待核对状态,不能自动推断业务边。
- 适用规则采用受限的字段/比较/布尔表达式,禁止任意脚本;结果为适用/不适用/未知。未知不自动删节点;项目确认“不适用”需理由及确认者,保留原要求。
表格结构、字段值和重复组均使用此树。实例外层保存project/doc/node身份、父/顺序、源模板块、状态和revision;内容值按节点revision追加保存。模板的填写说明不与实例值共用同一字段。父子关系由同一权威结构生成索引,禁止树JSON和邻接表分别接受写入。
### 4.3 历史与审签
旧Section.ID继续有效,作为迁移后对应章节nodeId;旧版本正文保留为该章节下的legacy正文块,不拆分改写已批准文字。为旧段落自动推断模板hash、职责或精细锚点是不允许的。
模板升级形成提案,展示新增/废止/要求/槽位/适用性差异,按templateBlockId对齐。人工确认后只改变新结构/新候选;旧文档版继续绑定原模板。WordSlot只用于固定渲染包的槽位映射,不充当实例身份。
文档整版快照固定结构revision、节点内容revision、模板及渲染包hash、依据版本和真实审签。DHF导出从指定快照生成;已批准Word作为该快照的固定交付物保存,下载链接过期不删除批准文件。生成失败显示“文件待生成/失败”,不伪造Word已就绪,也不回滚既有批准事实。
进度是需求覆盖和工作状态的投影:未开始、素材不足、草稿、待确认、评审中、已批准、依据变化待复核、不适用。已批准状态只能来自审签;有文字、节点数量、提案已确认均不能自动批准正文。
### 4.4 E1风险的处理路线
本任务E1发现doc-03分页7→6、doc-01图形文本排序、doc-13图形表示差异、doc-06批注混入、doc-14修订及49字符未定位、PDF中文缺字。对应路线如下:
| 问题 | 设计处理 | 放行证据 |
|---|---|---|
| 中文字体/分页 | 固定可读的目标字体和Writer/Office基线,保留渲染环境说明;先分辨原DOC导入与DOCX往返各自差异 | 每文件可读页面、关键格式对照及人工差异结论;像素相同不是唯一判据 |
| 文本框/连接线 | 图形源锚点与对象位置保留;阅读顺序由结构位置及核对结果确定 | 图形文字及关系语义可回指,未核对不展开为正式要求 |
| 批注/修订 | 当前内容与批注、删除、未采纳修订分别提取;原件不执行接受全部修订 | doc-14未定位片段查清;有效文本选择有业务负责人裁定 |
| 原件格式异常 | 只在有批准范围的派生副本修复,记录输入/输出hash及字节修改;原件保全 | 可复现实验、未损害其他内容/样式的对照;不得只看转换成功 |
| 自动路径仍不可靠 | 可提出人工按原件重建结构/槽位与派生渲染包,保留差异和双向核对;仍不降低内容/格式要求 | 逐项资产审核;替代路线及额外预算经对应阶段批准 |
DHF已有独立E1-R1在途,可在验证输入谱系和结果后复用。当前方案不把该追加试验视作已通过,不擅自运行第二轮或声明所有14份可发布。
## 5. 项目独立结构与动态提案
### 5.1 项目字典
每项目引用一个不可变基础字典版本,再叠加该项目的版本化扩展。阶段、主题、工作事项、子系统、文档类型和扩展字段拥有稳定ID;显示名可改,删除采用废止。工作事项不再被迫等同docType,兼容旧WorkItem值时保留旧键与显式映射。
Runtime.Dict只作为只读默认基础;WorldFor按projectId和有效dictionaryRevision取快照,不共享可变指针。历史重放按事件所绑定的字典版本解释;历史未保存版本时标记解释依据有限,不能用当前名称假装当时名称。更改字典形成提案,验证两树与关系引用,确认后同事务写字典revision和事件,作废该项目缓存。
扩展字段先定义语义、类型、验证和可见范围再允许赋值。项目A的覆盖不写全局种子,B不受影响。全局种子/模板发布仍经现有仓库治理,不开放运行时全局模板管理权限。
### 5.2 提案合同与生命周期
复用既有持久提案服务,扩展kind及版本/目标/差异载荷:`content / structure / dictionary / template-upgrade`。现有草稿记录默认content,旧命令继续只返回旧形状;新增统一读面支持各种kind。结构提案与内容提案保存各自类型化载荷,共用确认、拒绝、幂等及审计服务,不创建第二个审批中心。
提案字段:projectId、proposalId/revision、发起/生成主体、触发原因、目标范围、baseStructureRevision/baseDictionaryRevision、涉及的doc/content/template版本、changes、evidenceRefs、impactAnalysis、风险、payloadHash、状态和时间。所有权限判断用执行端身份;模型不能指定最终actor或confirmedBy。
```mermaid
stateDiagram-v2
[*] --> Pending: 保存候选和来源
Pending --> Superseded: 修改形成新修订
Pending --> Rejected: 有权成员拒绝并说明
Pending --> Cancelled: 发起者取消
Pending --> Conflict: 当前版本或权限变化
Pending --> Applied: 确认确切修订并事务提交
Conflict --> Superseded: 重新分析形成新候选
Applied --> [*]
```
不存在长期持久的“已批准但未执行”结构状态。确认与生效是同一事务;网络返回丢失后按operationId查询已提交回执。修改后接受必须先生成新提案修订、重新展示差异与影响,再确认其hash,不能把旧确认套给新内容。
确认还必须携带由扩展后的现有HITL通道生成、服务端可核验的一次性确认凭据,绑定用户/项目/提案修订/payloadHash及有效期,并在应用事务中消费。模型以用户身份调用工具、传入confirmed=true或伪造confirmedBy均不构成人工确认。对话中的“批准”由真实用户消息与当前待确认对象关联;对象不唯一或已经变化时重新展示差异。UI按钮与对话入口消费同一确认服务,避免存在直接调用decide绕过DYN-01的路径。
动态触发包括资料发布/撤销、结论变更、新需求、阶段推进、发现缺项、模板升级和成员主动整理。触发只记录待分析任务,按项目水位合并重复触发;分析不得在每条资料变化时无界重建全部树。自动生成的候选不进入有效项目上下文;确认后的结论/结构才成为依据。
### 5.3 写入及恢复
确认步骤:可信身份与项目 → 读取提案修订 → 获取项目写事务 → 复验权限/受控状态/预期版本 → 校验整批操作 → 原子提交新revision、领域事件、提案applied、幂等回执和审计outbox → 发布新只读投影。
允许操作为新增、改名、移动、排序、改变要求/适用性、取代/废止及增加扩展字段。校验循环、跨项目/跨文档父子、重复ID、dangling引用、表格覆盖、字段值和结构规模。跨文档移动视为两个受控对象的变更,须拥有全部相关职责且对两文档生成候选版;普通导航挂载不移动受控正文。
复用TxProjectOp,增加数据库内project revision的条件更新及请求digest核验;进程内锁不能替代DB CAS。幂等范围绑定项目、主体、动作、资源及请求内容。同键同内容重试返回原回执;同键异参拒绝。所有相关写入口必须更新相同revision约束,不能仅在新API加锁而旧命令绕过。
读者只取提交后的不可变快照。不能让读服务拿到写事务正在修改的World指针:对既有World缓存增加同一项目读写协调或在隔离工作副本中演算,提交后一次替换;失败作废工作副本。具体锁实现可在阶段5确定,但必须覆盖全部读/写入口,故障测试证明无半新状态。
提交前错误为未生效尝试;提交结果未知先查回执,禁止重复执行。outbox投递失败不回滚已提交业务,状态显示待投递并按事件ID幂等恢复。旧应用遇不支持的事件schema拒绝继续写/重放,不能跳过未知事件启动空树。
### 5.4 权限映射
沿用现有上限∩角色∩项目覆盖∩资源∩职责/状态规则。普通成员在可读范围可提出建议,不能因此应用变更。
| 变更/读取 | 执行端要求 |
|---|---|
| 项目字典/阶段与非正文导航调整 | 项目设置权限;阶段推进还需stage.advance;涉及受控要求时同时检查相应文档职责 |
| 文档内容/要求/结构采纳 | doc.write及指定编制人/当前文档状态;已批准对象须新候选并重审 |
| 资料发布/撤销及结论成为共享依据 | knowledge.publish及对应资源权限;发布成功台账与索引状态分开 |
| 受控关系确认/废止 | trace.edit及端点资源权限;不得以自动关联替代确认 |
| 审计查询 | audit.read及当前项目许可;每个内容字段/对象再按资源和正文权限披露 |
| 默认工作上下文 | 当前项目成员及相关知识/文档read权限;无需audit.read,不能通过上下文读出审计隐含私域 |
若现有project.settings粒度不能表达结构管理与权限管理的区别,新增专门动作必须同时给出默认/上限/旧角色迁移的明确方案,经权限合同评审;不能暗中给普通成员扩权。跨对象提案要求全部动作授权,不能部分应用后称整批成功。
## 6. 追溯与变更影响
一般来源网与受控合规网继续分别保存,统一引用为 `{projectId, kind, id, revision, anchor}`。内容块成为可定位的章节/要求证据落点,不把每个表格装饰单元都升级成受控需求实体。
UN、SR、DI、风险控制、软件需求/设计、测试用例、执行结果和报告保持不同业务身份;每个实体可绑定一个或多个块来源。候选关系不计入正式覆盖;新受控类型按现有CNode注册/重放合同增加明确语义,不以字符串节点冒充类型已支持。
端点升版时旧边保留原版本,当前视图标“待复核”;新的确认边绑定新版本,不自动移接旧测试证据。测试用例与测试执行结果分开,被测软件/配置版本在结果侧固定。
影响分析给出直接对象、传递路径、涉及的批准文档/验证缺口及分析水位。确认时若关键受控影响尚不清楚,阻止应用并要求完成分析;大图非关键补充影响可作为明确pending作业,不能将未计算显示为零。遍历去环、限定资源、返回截断及续查信息。
审计保存操作当时的影响分析ID及快照;用户另点“按当前版本分析”得到新的分析ID和水位,不能覆盖历史解释。模型建议的因果关系标候选,只有规则/确认事实进入确定性影响路径。
## 7. 成员工作上下文
### 7.1 公开扩展申请 X1
这是拟新增公开合同,尚未实现;符号最终以Dev扩展申请及surface版本为准。
| 四要素 | 内容 |
|---|---|
| 场景 | 普通成员在项目内开始、切换或恢复工作,未写@knowledge也应获得当前授权的任务要求和项目依据 |
| 希望的公开能力 | 可选 `ProjectContextRegistry.RegisterProjectContextProvider`;提供方有 `Resolve` 和 `ReadEvidence` 两种受限读取;基座按可信run scope调用,不提供任意客户端owner查询 |
| 现有组合不足 | AddCommandHandler只在命令调用时运行,KnowledgeSearch不提供默认任务要求/结构版本,ResourceAuthorizer只作许可判断,个人Memory按owner;都不能保证每次实际模型调用和恢复前注入 |
| 兼容方式 | 新增可选接口及类型,不给必须实现的Host/Registry强加方法;无项目或未注册插件保持原流程;RDM声明必需能力时缺失须明确不可用,不能静默回退到手动@knowledge |
Resolve请求由宿主构造actor、pluginId、projectId、conversationId、taskId/runId/stepId、任务目标/当前对象、模型预算及上次水位。项目归属从受信会话/任务记录读取,不能从模型参数覆盖;恢复任务的项目绑定不可由旧payload改变。
返回ProjectContextBundle:项目概要/当前阶段、任务对象与要求、已确认结论、当前可读文档摘要、授权知识引用、未决冲突/缺项、精确来源版本、候选资料的限制状态、授权/发布epoch与领域commit水位。未知项目/无权/不完整分别返回明确状态,不能跨项目回落到全量World。
ReadEvidence只接受Bundle内可再鉴权的稳定引用及范围,不接受任意文件路径/owner。RDM通过当前IAM与发布台账选择对象,基座保留资源级model-context授权;多个插件不能覆盖彼此命名空间或把自己结果当全项目权威。
### 7.2 实际调用链
```mermaid
sequenceDiagram
participant W as 普通成员工作
participant B as Backend运行时
participant R as RDM上下文提供方
participant M as 模型
W->>B: 项目内任务/对话
B->>R: 可信作用域、任务目标、预算
R->>R: 当前权限、发布与有效版本检查
R-->>B: 摘要、要求、引用、缺项和水位
B->>B: 预算裁剪,固定实际输入清单
B->>M: 当前授权上下文
M->>B: 必要时请求证据详情
B->>R: 指定引用,重新鉴权
R-->>B: 当前可读片段或明确拒绝
B->>B: 记录实际使用版本及输出引用
```
所有进入模型的路径,包括普通LLM、后台任务、Compose和恢复,使用同一提供方与manifest规则;Compose可提出更具体的块/文档目标,但不能自行从World取无权全量正文。不会把资料内容放入可覆盖平台规则的高权限指令。
Backend是最终注入和预算的唯一所有者。现有Host.Complete仅有prompt参数,不能靠插件在字符串中自报projectId补齐受信作用域;X1同时提出可选的 `WorkCompletionHost.CompleteForWork`,在已认证分发/任务上下文内解析目标及项目后走同一组装管线。Compose只提供生成目标和任务约束,已组装依据不再二次拼接;无可信工作作用域的普通Complete保留原有非项目能力,不能读取项目共享正文。后台恢复Host须从持久任务重新取得并验证作用域,而不是继承旧prompt内的身份。
预算顺序:系统/用户本轮目标及必需任务约束 → 项目和对象短摘要 → 必需的已确认依据 → 相关补充片段。每项记录保留或裁剪及原因;排序不静默裁决冲突。同任务先拿索引/摘要再渐进读取,不能在每轮扫描全部文档。
ContextManifest记录**实际最终输入**:bundle版本、对象ID/revision/hash、来源锚点、提供/丢弃片段、检索范围、模型/运行配置引用、预算与水位。候选检索列表单独记录,不能冒充模型已见;摘要内容保存受控版本或可复核hash,避免以后用新版摘要冒充旧输入。
### 7.3 撤权、恢复和失败
每次模型调用、细节读取、后台恢复及有副作用提交前复验当前成员/职责/资源权限及发布epoch;新任务、项目/任务切换和相关有效变更使旧Bundle失效。cache key包含actor/project/任务目标/权限epoch/内容水位,不能跨成员共用已裁剪正文缓存。
来源支持的历史工具片段及模型引用必须带出处,恢复时重新构造或移除已撤权/失效片段,不能仅检查新检索而继续把旧对话中的受限正文送入模型。无可靠出处的旧机器上下文标legacy,不能当授权读取入口;用户本轮自主输入与资源读取分开处理,不据旧引用授予访问。
权限在请求已发送后撤销,不能声称可撤回模型已处理的数据;记录实际输入时的授权水位,阻止后续调用和未获授权的派生结果交付/提交。具体外部模型留存政策不在本功能虚构保证。
提供方不可用/超时:普通对话显示项目依据暂不可用;依赖项目事实的生成/结构确认进入blocked或等待,不以无依据模型输出宣称已完成项目工作。只问一般问题可以继续,但清楚标出未使用项目依据。不得把可选能力故障变成全局平台不可用。
## 8. 完整审计事实与投影
### 8.1 三类记录和原子性
1. **业务事件**:已提交的结构/内容/关系/权限等事实,继续用于确定性重放。新增schema保存必要旧/新版本引用与业务元信息,成功回执与事件同事务。
2. **操作尝试**:requested/started/waiting/rejected/failed/cancelled/committed/partially-completed/unknown等结果;保存实际已发生副作用、错误类别及恢复链接。失败不追加“已生效”业务事件。
3. **宿主执行回执**:模型/工具/后台步骤/输入清单/投递的真实执行状态,经可信project/run关联读入。不能拿owner全量审计列表拼项目记录。
在发生副作用前持久化attempt起点;成功事务内写业务结果及attempt对应的commit receipt。若进程在更新attempt终态前退出,恢复根据commit receipt判定,避免“业务成功但审计显示失败”。没有回执且无法确认外部结果时记unknown,先对账再重试。
审计存储不可用时,要求留痕的写入不得继续无记录生效。受控查看/下载/导出也先记录可信读取尝试,再记录响应准备/流传输完成/中断等服务端可知状态;不能把HTTP完成写成用户已读。未解析为可信项目的恶意ID拒绝事件留宿主安全作用域,不挂到攻击者任意指定项目。
业务事务失败后在独立短事务结束attempt;两处均失败则保留起点/恢复缺项并明确报警,不宣称审计完整。后台投递用现有outbox扩展唯一sourceEventId,至少一次投递、幂等接收;离线期间显示缺少宿主回执范围。
### 8.2 操作信封
| 字段组 | 保存内容及规则 |
|---|---|
| 时间 | occurred/start/end/commit/confirm/recorded,UTC及原精度;未知显式缺项;页面按用户时区显示 |
| 人物 | 稳定actorID、当时名称和角色/职责快照、发起/执行/确认/审核/批准者;系统/智能体/人工区别;来源从受信身份取得 |
| 定位 | projectId、operationId、attemptId、requestId、run/task/step、因果父操作、对象kind/id/title/path、预期和实际前后版本 |
| 内容/依据 | 类型化字段差异、不可变正文/结构引用及hash、原因和确认意见、模板绑定、知识/原件/发言/表格锚点;网络来源含实际URL/查询/获取时间 |
| 结果 | 业务动作、状态、错误分类、可重试性、实际效果、生成产物、宿主投递/恢复状态;不把请求参数当已生效内容 |
| 影响 | 直接对象、间接路径、需重审/重做/补证条目、当时分析ID/范围/水位及截断或未计算状态 |
| 完整性 | event/schema/projection版本、domain commit水位、宿主source offset、来源标识、缺字段原因、披露状态 |
保存可记录的业务事实,不收集密码/token、模型隐藏推理、无关个人信息或完整未授权会话。完整输入依据采用受控内容引用/摘要hash和必要片段,不将整份私域正文复制成所有审计读者可见的detail字符串。
当时名称/路径与当前名称分别标示;旧记录不存在当时快照则显示“当时未记录”,当前解析名称只能作为“当前名称”。依据旧事件重放计算出的差异必须标推导来源与重放水位,不伪装成原操作当时记录。
### 8.3 公开扩展申请 X2与身份信息
| 四要素 | 项目宿主审计读取 |
|---|---|
| 场景 | RDM审计需要同项目的真实模型/工具/恢复/取消/投递事实及run关系 |
| 希望的公开能力 | 可选 `ProjectAuditHost.QueryProjectAudit`,参数为可信项目范围、过滤、source cursor与截止;返回允许披露的类型化HostAuditReceipt及coverage |
| 现有组合不足 | Host.Audit仅owner写入;现有owner列表无法同时证明项目归属、当前审计权及每个关联对象的披露权限 |
| 兼容方式 | 新增可选Host接口;宿主保有可信归属和资源策略,RDM提供audit.read领域授权回调;旧部署返回coverage=unsupported,不得称全量审计已交付 |
身份显示优先由宿主在事件生成时绑定可信显示名快照;RDM自身写入可经可选最小actor身份接口取得当前主体及本次授权参与者名称。现有AccountLister/Searcher仅授权管理读面,不能为审计用户授予全账号目录权。若需要新身份接口,作为X2的最小附属字段/能力申请,输入限定本操作已验证参与者,返回ID/name/status,不含联系方式。
X1/X2均需在Dev正式提案、公开surface/契约测试及基座任务完成后按发版tag供RDM消费。阶段4批准不能替代tag发布的用户双钥匙操作,也不能允许改RDM pins内容或import internal。
### 8.4 可读投影、完整归组及游标
新增OperationSummary/OperationDetail读模型。由版本化的确定性动作词典生成“某成员调整了某对象”等中文摘要,参数只能来自事实字段;未知动作显示“未识别的历史操作(详情有限)”,不输出原JSON作为兜底,不让LLM生成审计解释。
列表以**operation**分页,不先截事件再页内分组。操作详情按operationId读取完整已提交批次;大型操作支持其子明细分页,同时始终显示可见范围内的完整性/剩余明细状态。同操作的重试、失败和最终效果关联,不把重试作为额外业务生效。
建议增加可重建的操作索引与不可变投影修订:记录operationId、project、发生/记录时间、状态、batchEnd、投影版本、关联引用和各来源水位。列表采用固定读取快照及稳定键集游标;游标绑定项目、主体授权版本、过滤hash、截止与最后排序键,篡改/过滤变化/撤权时失效。
domain seq与宿主offset不能比较成一个天然全局时钟。跨源审计采用本地摄入序列作为读取截止,同时保存domain commit和各宿主source offset;迟到回执在较新快照显示“补收到的执行记录”,旧快照不被悄然改写。历史截止只纳入完整提交批次,沿用在途导出水位合同。
状态过滤和汇总同样受当前披露规则约束。不能通过隐藏正文但暴露私域对象标题、差异长度或总计数量泄露内容;是否能显示受限对象的存在由字段策略决定,必要时仅“部分信息受限”。读DTO在服务端裁剪,内部重放payload不下发。
### 8.5 操作覆盖
实施时将阶段1§7.1六类覆盖矩阵逐动作接入:模板/结构、知识/资料、文档、需求/风险/测试/关系、成员/权限、智能体/后台。每动作至少关联入口→授权→尝试→实际生效事件/拒绝→可读投影→验证场景。
会话内个人草稿/未发布发现保持私域;项目审计只能见获准共享的关联摘要。宿主不能提供的字段明确not-recorded/unsupported,正式覆盖验收据此判缺项,不用“尽量记录”代替已批准完整范围。
## 9. 界面与命令合同
### 9.1 现有工作区内的用户流程
- 笔记树展示“知道什么、依据和有效状态”;文档树展示“需要交付什么、当前内容和缺项”;追溯视图展示“来源/实现/验证及影响”。项目切换沿用左栏,层级按项目内容展开,长树懒加载。
- 成员在对话提出调整,右栏工作卡显示提案差异、理由和影响;确认/修改/拒绝同时有对话内路径。有效树与候选覆盖层视觉区分,不能先改树再要求确认。
- 普通工作只在有用时显示“本次依据”短摘要,可展开确切版本与缺项;不把模板hash、schema或内部解析器信息放进默认业务流程。需要核对证据时沿用唯一文件预览。
- 审计默认显示操作摘要、时间、人物、对象、结果及可见影响;展开“变更前后、依据、确认过程、影响、执行尝试”。默认无原始JSON/op码/base64。空数据、无权限、部分覆盖、加载和错误状态各自可辨。
示例仅用于说明设计,不是真实审计:
> 王某于10:42将“使用环境”移至“医院使用场景”,经李某确认后生效。结构版本8→9。依据为已确认会议结论。2份可读文档需要复核;展开查看前后路径、确认意见和影响条目。
数字和姓名仅由授权字段提供;受限时不保留该示例中的完整计数。旧记录显示“当时未记录原因”,不生成貌似合理的原因。
复用@ui tokens、字号标尺、mk-*与Collapsible;正文纸面保留文档字体/颜色。沿用三栏、四类检查入口及唯一文件预览,不新建模板后台或独立审批中心。窄屏和右栏收起仍能从对话完成确认。
### 9.2 拟定读写面
以下是方案合同名,不是已存在命令,实施时统一更新schema/公开目录并作兼容测试。
| 面 | 关键请求 | 关键响应 |
|---|---|---|
| `rdm.structure.propose/get/decide` | 可信项目、kind、目标/变更或提案ID、expectedRevision/hash、idempotencyKey、意见 | 持久提案/差异/依据/影响;确认回执、newRevision、commitSeq;冲突时返回当前可读差异 |
| `rdm.project.schema.get` | 项目、指定revision或current | 有效基础+项目扩展的只读快照及历史限制 |
| `rdm.inspect.tree`版本化扩展 | 项目、根/父节点、种类、revision、cursor | 递归子节点、种类、约束/进度、hasChildren、可见范围、稳定cursor |
| `rdm.inspect.operations/get` | 项目、时间/人物/动作/对象/结果/任务、截止及cursor或operationId | OperationSummary页或类型化详情、完整性、披露、各来源水位 |
| `rdm.context.inspect`(可选诊断) | 本人有权run/step | 已记录实际输入manifest的授权摘要;不能借此读取别人的完整会话 |
错误统一区分无权、提案/版本冲突、未知schema、必需来源缺失、模板未发布/不适用、保真未核对、分析未完成、提供方不可用、审计不可写、结果待对账。内部错误码用于诊断,页面显示对应动作、原因和可采取步骤。冲突不能自动重试成覆盖写入。
异步状态由一个store所有。页面请求带project/account/filter/history/request generation,事件按seq推进;旧响应直接丢弃。提案确认后以服务端回执刷新提交水位,不能以乐观更新伪造已生效;读模型追赶时显示同步状态。
## 10. 数据迁移、兼容与恢复
新增持久对象按领域分组:项目schema revisions、结构及内容修订/映射、提案类型化载荷、操作attempt/commit receipt、上下文manifest、可重建操作投影索引。已有事件/知识/正文/审批数据继续是各自权威;投影不能反向写业务事实。
数据库变更采用版本化迁移及最低读写schema fencing,不靠Get()散落DDL默默改变历史。阶段5先在副本建立旧数据基线、源hash和事件水位,演练迁移/重放/幂等中断恢复;运行库切换单独授权。
迁移原则:
1. 旧Doc/Section/Version和所有引用ID保持;生成新父子索引及legacy正文块时保存确定性映射,重复迁移不能生成新ID。
2. 原版本/批准快照不改写;缺模板绑定或当时字典版本者保留legacy-unbound/unknown,不回填假的hash和审批。
3. 新写路径及旧兼容命令统一经过同一事务/版本/权限服务。不能双写两套独立树后靠异步同步消除冲突。
4. 事件schema采用兼容解码与明确版本门禁;新schema写入后不支持的旧二进制不得启动写入。回退使用已验证可读版本或迁移前完整副本,不删除新事实伪装回滚。
5. 操作投影可按固定事实水位重建,后台重建与当前写入有checkpoint,原始事件和attempt不删除。历史缺字段继续缺字段。
6. 数据库、原件/模板包、批准Word、附件及manifest引用作为一致性备份集合;不能只备数据库造成内容hash悬空。普通清理不得删除唯一历史证据。
故障矩阵应覆盖:确认前撤权、提交前/后进程退出、响应丢失、索引投递失败、宿主审计不可达、模板文件损坏、读投影落后、旧schema、迁移中断、模型运行中资料撤销。每条恢复路径返回实际结果与缺项,不默认重做所有外部动作。
## 11. 需求到设计和验证的追溯
下表是测试设计要求,当前产品测试均NOT_RUN;阶段5再给出具体命令、夹具、责任人、模型费用与环境。
| 需求 | 方案位置 | 必须提供的验证证据 |
|---|---|---|
| TT-T01 | §2.1、4.1 | 44路径/hash/逻辑用途、失败资产阻止发布、无源码目录的制品加载 |
| TT-T02 | §4.2、4.4 | 44逐项内容/样式核对;表格/图形/修订/示例;目标环境可读格式 |
| TT-T03 | §4.1–4.2 | 软件/硬件/无菌等差异项目;未知/不适用确认与进度分母 |
| TT-T04 | §4.3 | 模板升版/退役/拒绝/旧实例回查,整文快照固定 |
| TT-N01 | §3、6 | 唯一知识多挂载、来源锚点、结论取代、软删除和冲突登记 |
| TT-N02 | §5.1 | 两项目扩展互不污染、同名异义、重启及历史字典解释 |
| TT-D01 | §4.2–4.3 | 五层以上混合结构、重复组、移动/同名不变ID、循环拒绝 |
| TT-D02 | §5.2 | 各触发源及接受/修改/拒绝/重启;确认前有效树不变 |
| TT-D03 | §5.3 | 并发CAS、同键异参、提交各边界故障、读无半新态 |
| TT-D04 | §4.3、5.4 | 三权/状态组合、实质变重新审签、旧批准版保全 |
| TT-G01 | §6 | 一般/受控各条完整与缺项链、候选不能满足验证覆盖 |
| TT-G02 | §6、8.4 | 端点升版、直接/间接/截断、当时与当前影响分离 |
| TT-G03 | §4.2、6、8.2 | 人工/规则/模型/文件/网络来源与确切版本锚点 |
| TT-C01 | §7.1–7.2 | 两项目两成员普通工作无需@knowledge,实际输入与输出来源 |
| TT-C02 | §7.2 | 超预算、冲突、无结果、不可信来源指令、渐进读取 |
| TT-C03 | §5.4、7.3 | 私域/共享、跨项目、撤权、缓存/历史/恢复无泄漏 |
| TT-C04 | §7.2–7.3 | 每次调用最终manifest、切换/升版/撤权刷新及实际裁剪 |
| TT-A01 | §8.1、8.5 | 六类逐动作覆盖矩阵,宿主缺项显式显示 |
| TT-A02 | §8.2–8.3 | 时间/身份更名/前后版本/原因/确认链/影响及缺项 |
| TT-A03 | §5.3、8.1 | 失败/拒绝/取消/部分完成/未知与实际效果一致 |
| TT-A04 | §8.1、8.3–8.4 | 真实宿主归属、延迟投递/恢复、历史不补造 |
| TT-U01 | §8.4、9.1 | 正常/失败/未知/旧记录可读,默认无原始payload |
| TT-U02 | §9.1–9.2 | 来源/影响对象标题、权限内锚点与唯一预览 |
| TT-U03 | §8.4、9.2 | 操作跨页完整、固定截止、迟到响应、筛选和历史切换 |
| TT-U04 | §5.4、8.4 | audit.read/正文权交叉矩阵;网络DTO/导出/历史字段不泄漏 |
| TT-V01 | §10–11 | 固定源码/pins/配置,正常/失败/迁移/重放及独立最小重放 |
| TT-V02 | §7、11 | 真实模型同任务前后对照,召回/错误引用/撤权/结构提案场景 |
| TT-V03 | §9–11 | 正式Frontend两人两项目流程、设计守护、精确组合与当前HEAD CI |
## 12. 后续实施顺序与评审出口
建议阶段5按依赖细化以下工作包;这只是方案依赖顺序,不代替尚未批准的实施计划:
1. 与DHF专项固定唯一ContentBlock/模板资产合同和每文件映射,明确E1未决项的验证/裁定责任;同时设计项目字典与旧对象映射。
2. 递归实例/版本、事务与提案服务,先打通并发/恢复/三权,供DHF实例化和本任务动态调整共用。
3. 受控关系、直接/间接影响及操作事实/attempt写入;不得等UI阶段再补无法从旧记录恢复的字段。
4. X1/X2基座公开能力与RDM适配,接普通工作/Compose/后台恢复的实际manifest;按既有tag发布边界交付。
5. 现有树/提案/追溯/审计UI消费新合同,保持唯一状态和权限投影。
6. 全44资产与两项目两成员真实模型、浏览器、故障/迁移和精确组合验证;按阶段7–9审阅、Review和当前HEAD CI交付。部署与清理另按授权。
仍需验证的设计假设:DHF共享合同扩展及逐模板发布条件;X1覆盖所有模型入口且预算可控;现有事务读写协调能防半新状态;项目审计归组在大批次/迟到宿主回执下稳定;存量映射可保持所有旧引用。各项已给出负责模块与验证方法,尚未宣称实现可用。
本次请评审:推荐路线、单一DHF合同分工、项目版本/提案与权限边界、X1/X2公开扩展、可读审计事实/分页合同,以及E1未决项不放行发布的处理。通过后形成阶段5实施和测试计划;本阶段不运行新的转换试验、付费模型、业务代码测试或生产操作。若审议改变需求范围/权限/验收标准,仅回退受影响需求,不重开已确认DYN-01。
阶段5可将不依赖具体原件转换结果的结构/权限/上下文工作独立安排;真实资产仍在needs-review/blocked时不得对外宣称44份标准模板已可用。测试夹具只能验证机制,不能取代逐文件内容和格式验收。E1尚未解决的资产问题继续归入本目标最终完成条件。
@@ -0,0 +1,232 @@
# 两树一网阶段5:实施与测试计划 r1
记录时间:2026-10-14(Asia/Shanghai);需求负责人/阶段评审人:用户;计划编写:Codex。**待阶段5人工评审**。本计划覆盖已确认的全部28项TT需求和44份DHF Word模板;计划获批前不启动本任务的业务代码、迁移、付费模型测试或部署。
已批准输入:[阶段3需求与验收条件r1](rdm-two-trees-stage3-requirements-r1.md),SHA256 `d685b9de14e1bd7c19a2a94dfab234c5a942f1281acd113ea924d24887246e15`;[阶段4方案r1](rdm-two-trees-stage4-design-r1.md),SHA256 `568aa26f6b2276f786109e2298b3ae36c6c14d3be5a54e0dfc95bf1b2db4603b`。用户于本聊天 `call_69f62a2617e74bfd93b75a8bef7d9809` 选择“批准方案,进入实施计划(推荐)”。本计划细化方案,不改变DYN-01“提出变更,确认后应用”、保真未通过不发布、成员当前授权或受控文档三权边界。
## 1. 交付终点和现场事实
交付终点是**整个目标**:44份新模板逐文件发布核对或有明确阻塞且不伪称已就位;项目专属的细粒度递归笔记/文档结构、经成员确认的动态扩展和版本追溯;同项目成员普通工作自动使用当前有权依据;详尽事实审计与人能读懂的审计页;两项目两成员真实模型、浏览器和故障恢复通过。只做一个试点、只覆盖若干模板或只翻译事件码均不构成完成。
本轮只读依赖快照:[stage5-dependencies.json](stage5-dependencies.json),记录六仓main、PR、DHF工作区HEAD和文件hash及采集时刻,来源SELF。它用于本计划分工,不是未来最新主干、现行部署或CI证据。`rg --files`当前核对 `.templates/DHF 文件模板/` 仍为44份Word。阶段4审阅时Frontend main已推进,Frontend #73审计导出已合入;RDM #301/#307、Dev #488、Backend #193、Frontend #79、Documents #95、Dev #512仍开放。开始对应代码工作和每次同步前重新获取真实状态;已经合入的导出入口及水位合同要复用。
DHF独立任务 `feature/dhf-template-assets` 已有单一 `TemplateAsset` / `ContentBlock` 候选与44项资产目录:工作记录为40项needs-review、4项blocked、0项published。其初次E1转换10份,追加E1-R1的4份也生成候选,但其结果仍为 `fidelityGate=NOT_PASSED`、`human_fidelity_review=NOT_REVIEWED`、`publishedAssets=0`。本任务自己的E1曾用另一隔离环境取得14份转换产物,亦未通过保真;这些不同路径的“转换成功”不互相证明。统一以原件hash、工具/派生hash、差异台账及逐文件人工裁定核对,不把双方候选任意合并为已批准资产。
实施采用既有注册worktree和独立任务分支。Dev此任务R0为`add097d06137c4912a4ed9279e98ca353e4e4cf1`,已纳入较新的main;具体每个新组件任务需从其**启动时权威origin/main**固定各自R0。Dev/Documents阶段记录当前仅本地候选,未形成业务提交或PR。阶段6开始前核对上游、共享现场、活跃任务owner与最初precheck;不接管DHF工作区或把其未提交代码当合入事实。
### 1.1 本计划的共同约束
- RDM只通过Backend `pkg/extension` 与Core公开类型交互;不导入Backend internal、不改RDM `pins/`内容。X1/X2公共能力按四要素申请,基座实现测试及其批准的发版tag由用户按双钥匙亲手发布;RDM在真实可消费tag后接线。
- 项目ID/资源ID仅定位,不能授权;服务端重验项目成员、动作、资源、职责、状态及有效版本。审计读权不自动给正文,管理员/创建者不自动绕过文档职责。
- 结构/字典/模板变更必须有不可变提案修订与实际人工确认;模型或工具自报确认无效。确认与业务事件/回执原子提交;失败尝试和已生效事件分别记。
- 旧Section/Doc、引用、批准版和原件不被覆盖。迁移先用**隔离副本**验证并保留可恢复全组合;真实运行库迁移、部署及发布另有审批与执行计划,阶段5批准不直接操作线上。
- 前端先读Dev `DESIGN.md`,使用`@ui/tokens.css`、`--fs-ui-*`、`mk-*`与Collapsible;三栏、四个检查入口和唯一文件预览不增冗余页面。异步状态只有一个owner,事件按seq丢弃旧响应。
- 命令输出经各仓`make evidence`保留完整SELF收据;正式准入还须精确对象的GATE或独立REPLAY。命令、路径和测试环境在下面各任务核对当前仓版本后使用,不能把文档中的期望写成运行通过。
### 1.2 实施审阅重点
| 易漏输入/故障 | 应有行为 | 拥有验证的工作项 |
|---|---|---|
| CFB头异常、原件可导入但中文分页或图形阅读顺序变化 | 原件保全,候选留needs-review/blocked,发布拒绝且差异可查看 | W1的DOC对照、W11逐资产人工裁定 |
| 同名节点、重复块或跨项目父节点 | 稳定ID与来源保持;非法父子/循环拒绝,不靠标题去重 | W3递归/旧数据用例,W4提交前校验 |
| 模型以用户身份调用确认工具、过期提案或异参同幂等键 | 无实际人审凭据不生效;旧修订冲突、异参同键拒绝并留尝试记录 | W4人审/CAS/恢复用例 |
| 成员撤权后后台恢复携带旧会话中的正文片段 | 实际下一次模型输入剔除已撤权来源,记录删去原因;不得跨项目继续引用 | W6受信作用域,W7恢复/撤权模型输入用例 |
| 大批操作跨页、宿主回执迟到、审计员无正文权限 | 一次操作完整展开,迟到回执另有水位;服务端DTO不下发受限字段或泄漏计数 | W8操作分页,W9字段披露,W10真实浏览器/网络检查 |
## 2. 工作归属、依赖图与增量
RDM仓代码owner为本目标RDM实施分支;DHF资产、原件/渲染、逐文件评审和Word生成由**原DHF任务worktree owner**继续持有;Backend基座与Frontend/UI各有独立组件分支,Dev只做公开扩展申请、任务主记录和固定组合。两条RDM任务共享`ContentBlock`与`doctree.go`,不得同时在不同未合入分支修改同一权威合同。DHF U1先冻结基础合同并经审核合入;本任务随后从更新的RDM main扩展实例/项目语义。DHF后续U2–U6在本计划中作为同一目标的明确依赖和交付工作:阶段5评审同时确认其继续由原任务owner实施,并要求原任务卡引用本计划及本次批准;此前原任务仅有U1/E1-R1授权,不能由本计划草案自动扩权。
```mermaid
flowchart LR
P0[W0 冻结44清单与跨任务合同] --> P1[W1 DHF U1资产门禁]
P0 --> P2[W2 项目字典与笔记]
P1 --> P3[W3 递归实例与旧数据兼容]
P2 --> P3
P3 --> P4[W4 结构提案与确认事务]
P4 --> P5[W5 追溯及影响]
P2 --> P6[W6 基座X1公开能力]
P6 --> P7[W7 RDM工作上下文]
P4 --> P8[W8 RDM审计事实与操作投影]
P0 --> P9[W9 基座X2宿主审计]
P5 --> P10[W10 正式工作区]
P7 --> P10
P8 --> P10
P9 --> P10
P1 --> P11[W11 DHF发布/生成/全44]
P3 --> P11
P4 --> P11
P7 --> P11
P10 --> P11
P10 --> P12[W12 真实组合及正式验收]
P11 --> P12
```
W2、基座W6和W9在W0后可从各自main的兄弟分支并行准备;W9与W6涉及同一Backend公开面时,先合入一个,再同步另一个至最新main并验证最终surface。W8可先完成RDM领域事实,接入宿主回执和界面前必须等W9。W3必须等待DHF U1真正合入并消费其**已核验**合同;不得从DHF脏分支私自复制代码。W11的独立资产整理可与W3–W10并行,发布/生成联调按图中的门禁推进。
阶段6建议四个可评审增量:A(W0–W4:共享合同、项目结构、动态确认)、B(W5–W7:追溯和成员上下文)、C(W8–W10:完整审计与界面)、D(W11及W12:44模板和全链路)。每增量的产物由用户按阶段6评审;局部自检与同一批准范围内的缺陷修复可继续。阶段7只在全目标候选固定后做正式验收;缺失的W11资产不能被A–C成功替代。
## 3. 近期工作项:合同、字典、递归结构与确认
### W0. 冻结共享合同和44份逐文件状态
- **需求/owner**:TT-T01–T04、D01;本任务RDM owner与DHF任务owner共同核对,业务用途和格式由用户/指定模板负责人裁定。
- **范围/文件**:Dev `.templates/DHF 文件模板/`只读;DHF仓 `internal/domain/template_asset.go`、`internal/rdmapp/dhf_assets.go`、`internal/rdmapp/templates/dhf/catalog.json`、`docs/records/dhf/`;本任务既有阶段1附录A与E1报告。仅使用DHF的一份catalog和一套ContentBlock,不复制第二份资产表进运行库。
- **动作**:逐文件对齐44逻辑ID、41不同原件hash、阶段/用途、候选docType、来源锚点、版式差异与状态;四份同字节评审原件分别保留用途。明确12个新增/细分候选的命名和旧69型兼容;系统需求研发/项目管理用途、《验证确认报告F02》、有效期/货架寿命及企业固定项须有逐项裁定。以字段/图形/通用重复组补齐共同ContentBlock;冻结schema/消费者兼容策略,未获业务裁定项保持blocked。
- **验证**:脚本按原路径和hash比较两份E1输入谱系,不把docx文件存在当保真;校验重复内容不合并逻辑用途、未知/损坏/不适用资产拒绝发布。对照`docs/records/dhf/e1-r1-result.json`的4份候选,确认人工格式仍NOT_REVIEWED。
- **完成/停止**:44/44处置行、合同版本、共同owner和未决项负责人明确;发布为0仍可完成合同准备。任一原件hash漂移、两个任务对同字段各有定义或需改变已批准保真要求时,停止受影响写入并返回阶段4/需求重审。
### W1. DHF U1资产基础合入与保真核对路径
- **需求/owner**:TT-T01/T02/T03/V01;原DHF任务owner,当前本地候选不作已交付事实。
- **范围/文件**:RDM `internal/domain/template_asset.go`、`internal/rdmapp/dhf_assets.go`、`internal/rdmapp/templates/dhf/`、`docs/records/dhf/`及相应测试。后续规范化工具和产物只在其批准的隔离范围工作;原件只读。
- **动作**:先完成现有U1回归/Review并按其阶段门禁合入;为图形/批注/修订、字段单位/条件与重复块补同一合同。把最初10份及E1-R1的4份转换稿记为不同工具链的候选,各自记录输入/输出hash。准备可读中文字体与目标Word/Writer人工核对表。已发现的分页、阅读顺序、PDF文本、49字符未定位等逐项分配“修复/人工重建/阻塞”决定;额外试验超出已批E1/E1-R1范围时先提交最小试验计划取得批准。
- **验证**:`GOWORK=off go test ./internal/domain ./internal/rdmapp -run 'TestContentBlocks|TestDHF|TestBundledDHF' -count=1`(从RDM仓,按实际测试名调整);检查镜像工具版本、沙箱断网和原件hash;业务人员从原DOC/DOCX与候选逐项对照关键内容/表格/图形/修订及中文格式。
- **完成/停止**:U1源代码合入且精确合同可消费;44份均保持真实状态,单份只在其审核绑定原件/结构/渲染hash后published。业务/版式未审、独立来源差异未解决或无可读渲染基线时该资产不得发布,W3的通用结构工作可继续但W11全量出口仍受阻。
### W2. 项目字典与笔记树扩展
- **需求/owner**:TT-N01/N02/G03;本任务RDM领域owner。
- **范围/文件**:`internal/domain/labels.go`、`notetree.go`、`payloads.go`、`replay.go`、`internal/domain/store/store.go`、`internal/rdmapp/runtime.go`;新增聚焦的项目字典版本、知识挂载服务及测试文件。当前Runtime.Dict/WorldFor的读写路径全部纳入。
- **动作**:以固定基础字典版本+projectId作用域的版本化overlay实现阶段/主题/工作事项/子系统/类型/扩展字段;词条稳定ID与显示名分离。保留旧WorkItem→docType映射,旧事件无当时字典版显示历史缺项。笔记本体唯一ID,多树挂载作为关系,结论取代/撤回、问题/冲突/假设独立于正式正文;索引及已发布台账与领域状态分开。项目A写入不能修改B或全局种子。
- **验证**:RDM领域与存储测试:两个项目同名异义词、名称变更/废止、五类知识来源、同知识多挂/撤挂、旧事件重放、未知类型拒绝;SQLite和PostgreSQL隔离库各跑一次关键迁移/重放。`GOWORK=off go test ./internal/domain ./internal/rdmapp -run 'TestProjectDictionary|TestNoteMount|TestLegacyDictionary' -count=1`为目标测试名。
- **完成/停止**:每项目的有效revision唯一,跨项目互不污染、旧ID与来源可回指。若迁移无法保留旧引用或需要全局运行库重置,停止迁移设计实施并回到阶段4调整;不通过覆盖旧值求过关。
### W3. 递归文档实例、模板绑定与旧数据兼容
- **需求/owner**:TT-T02/T04/D01/D04;本任务RDM领域owner;DHF U2消费已合并的实例接口,不平行写另一树。
- **前置/文件**:W1已合入、W2字典;RDM `internal/domain/doctree.go`、`payloads.go`、`replay.go`、`internal/domain/store/store.go`、`internal/rdmapp/structure.go`、`runtime.go`、`templates.go`、`docsubmission.go`;必要新增`document_blocks.go`、旧对象映射与服务测试。
- **动作**:Doc实例固定templateId/version/原件/结构/渲染hash,模板块ID与实例nodeID分开。递归块支持多级章节/段/字段/表/行/单元/重复组/附件/图形及其输入约束;项目自有节点和模板节点可共存。结构、值、整文批准版各有独立revision;旧Section.ID原样维持为章节节点身份,历史内容保存legacy块,旧批准和职责不改写。旧`StructureApply`按标题去重只用于既有兼容/迁移,不再用于新实例身份。
- **验证**:深于五级、同名节点、重复表格、合并单元、图形不透明块、移动/改名保持引用;旧数据库备份副本迁移两次结果同值,未知未来事件拒绝启动写入;已批准版与旧下载仍可回取。`GOWORK=off go test ./internal/domain ./internal/rdmapp -run 'TestRecursiveBlock|TestLegacyDocMigration|TestTemplateBinding' -count=1`为目标测试名。
- **完成/停止**:一个真实项目实例可表达新项目建议书及用户需求12组要求,旧ID/replay/批准版保留。解析块上限、适用性未知和缺字段均返回可处理状态;不能通过删除必需项抬高完成率。DHF资产未published时只能验证实例机制,不宣称其正式标准模板已可用。
### W4. 动态结构提案、人工确认与事务恢复
- **需求/owner**:TT-D02/D03/D04/T04;本任务RDM领域/应用层owner,UI后续消费。
- **前置/文件**:W2/W3;RDM `internal/rdmapp/draftproposal.go`、`tx.go`、`runtime.go`、`internal/domain/eventlog.go`、`payloads.go`、`replay.go`、`internal/perms/perms.go`、`plugins/rdm/plugin.go`;新增`structure_proposals.go`及必要迁移/测试。沿用同一持久提案生命周期,不另设审批中心。
- **动作**:kind为content/structure/dictionary/template-upgrade的提案保存不可变revision、baseVersions、差异/理由/证据/影响及payloadHash。真实人确认凭据绑定项目/提案修订/actor/hash,一次性消费;模型工具不能自设confirmedBy。项目事务内校验当前IAM、指定编制职责、结构/模板版本、循环与表格规则、请求digest;同键同请求重放原回执,异参同键拒绝。成功结构+事件+提案状态+回执+outbox同事务;失败尝试单独记录,未知提交结果先查询。全部旧写入口必须通过统一版本约束。
- **验证**:资料发布/阶段推进/缺项/模板升级/人工触发;接受、改后接受、拒绝、取消、过期确认、模型冒充、并发两成员、确认瞬间撤权;事务每个故障点中断/重启和超时重试,无半棵树/重复边/双重确认。`GOWORK=off go test ./internal/rdmapp ./plugins/rdm -run 'TestStructureProposal|TestProjectCAS|TestHumanConfirm|TestProposalRecovery' -count=1`为目标测试名。
- **完成/停止**:确认前有效树字节/版本不变,确认后一次生效且可重放;已批准正文变化进入既有三权重审。若需改变领域/公开权限契约或迁移语义,暂停受影响实现回到方案评审;与DHF同时编辑同一`doctree.go`时先确定唯一owner和合入顺序。
## 4. 后续工作项:追溯、上下文与审计
以下工作保持文件/契约、测试和出口,但阶段5批准后由阶段6增量A–C逐项展开到具体提交,不用“远期”豁免28项。
### W5. 追溯网、版本端点和影响
- **需求/owner**:TT-G01/G02/G03;RDM领域owner。前置W3/W4。
- **文件**:`internal/domain/tracenet.go`、`compliance.go`、`compliance_rules.go`、`payloads.go`、`replay.go`、`internal/rdmapp/trace.go`、`inspection.go`及相应领域/命令测试。
- **实施**:明确UN/SR/DI/设计/风险/软件三级测试/执行结果类型和模板块来源的映射;一般来源边与受控证据边分别保留;受控边锁定两端精确revision。端点升版标待复核,关键影响分析未完不得确认;当时影响快照与当前重算分开,遍历有环路/截断/水位。缺证据不得虚报覆盖。
- **验证/出口**:六类完整链与缺项链、端点升版、候选未确认、环和超预算、间接影响、旧版本回查;检查事件重放后的关系/待复核状态及两种影响水位。两网统一读面可解释,无旧边自动升级。
### W6. 基座公开X1:项目上下文和受信生成入口
- **需求/owner**:TT-C01/C02/C03/C04;Backend基座owner,Dev负责四要素申请与固定公开面。W0后可准备;RDM消费必须等基座发布tag。
- **文件**:Backend `pkg/extension/extension.go`、`host.go`、`surface.txt`、`internal/app/hostcaps.go`、`internal/runtime/llm.go`、`internal/ctxasm/ctxasm.go`、`internal/runmgr/`与store受信项目绑定;Dev文档申请、公开边界和CI测试。
- **实施**:可选ProjectContextRegistry注册RDM提供方;Backend从认证会话/持久任务解出actor/project/task/run/step,按预算在普通LLM、后台恢复及受信`CompleteForWork`完成一次注入。提供方只返回当前授权摘要/可再鉴权引用;最终组装及实际输入manifest由Backend唯一持有。无项目/无提供方时正常非项目流程不变;RDM声明必需能力却未装配时明确缺失。
- **验证/出口**:非项目兼容、默认项目普通输入、跨项目伪projectId、撤权后缓存/恢复/旧消息片段、摘要超预算和提供方超时。接口编译/宿主注入/资源授权正负例与真实发送给模型的manifest一致;未发布tag不得以本地replace或修改RDM pins消费。
### W7. RDM上下文提供方与实际依据刷新
- **需求/owner**:TT-C01–C04/N01/G03;RDM应用层owner。前置W2、W5、W6可消费tag;未达到tag时可做纯领域摘要与测试,但不得宣布自动注入完成。
- **文件**:`internal/rdmapp/knowledge_publication.go`、`runtime.go`、`compose.go`、`inspection_visibility.go`、`plugins/rdm/plugin.go`;新增`project_context.go`及测试。
- **实施**:项目范围/阶段、任务对象要求、当前已确认结论、未决冲突/缺项和已发布知识来源组成短摘要,按任务相关性渐进ReadEvidence。个人草稿、原始会话、未发布发现和无职责受控正文不跨成员;切换/撤权/废止使bundle失效。Compose仅提供目标约束,调用同一受信生成入口,防止双次注入和旧prompt凭据。
- **验证/出口**:两项目两成员普通任务不用@knowledge、项目A特有节点不进B、私域资料不共享、恢复/撤权后从实际模型输入中消失,冲突和裁剪显式出现;source ID/revision/hash和输入manifest可回查。不能仅用`KnowledgeSearch`返回命中证明模型真实看到或使用。
### W8. RDM审计事实、失败尝试和可读操作投影
- **需求/owner**:TT-A01–A04/U01/U03/U04;RDM领域/应用owner。前置W4/W5,W9宿主部分可并行落入。
- **文件**:`internal/domain/eventlog.go`、`payloads.go`、`replay.go`、`internal/domain/store/store.go`、`internal/rdmapp/tx.go`、`inspection.go`、`inspection_visibility.go`、领域操作/权限入口及服务端测试;新增`operation_audit.go`、类型化DTO/词典与投影索引。
- **实施**:项目可信操作/attempt/commit receipt、人物当时名称/职责、各适用时间、对象前后版本/差异/理由/证据、实际直接/间接影响、错误及未知状态。成功事实与领域事件同事务,失败尝试不写已生效事件;宿主回执用可信run关联、幂等摄入并保留延迟状态。按**operation**分页,游标绑定项目/主体/授权epoch/筛选/截止,内部payload绝不直下客户端。旧缺项标“当时未记录”,当前名称只标“当前”。
- **验证/出口**:阶段1§7.1六类操作逐动作覆盖矩阵,至少各有成功、拒绝/失败和无副作用实例;网络断开、提交前/后崩溃、outbox重试/重复、人物改名、旧schema、跨页多事件、迟到宿主回执、历史截止、权限字段差异。每个操作能回答谁/何时/做了什么/内容前后/依据/真实结果和影响;不以原始op码或JSON作为业务记录。
### W9. 基座公开X2:项目宿主审计与可信参与者姓名
- **需求/owner**:TT-A01/A02/A04/U04;Backend基座owner,Dev四要素申请;W0后可与X1兄弟分支开发,最终按主干顺序同步surface。
- **文件**:Backend `pkg/extension/extension.go`、`surface.txt`、`internal/app/hostcaps.go`、`internal/store/audit.go`、相关server/hostcaps测试;RDM `perms`/审计适配消费端。
- **实施**:可选ProjectAuditHost按受信项目、actor、resource、run、source offset与截止读取,结合RDM `audit.read`回调和每对象正文权作服务端裁剪;为本操作已验证参与者保存最小当时显示名,不给审计员全账号目录。owner全量审计不当作项目流;缺基座能力返回unsupported覆盖范围。
- **验证/出口**:同owner跨项目/两成员、恶意projectId、audit.read无正文、正文无audit.read、对象已撤权/删改、历史、导出和长分页;旧记录不补造字段。RDM消费与W8的domain水位/宿主offset组合不声称天然全局时间序。
### W10. 正式Frontend与现有工作区
- **需求/owner**:TT-D02/U01–U04/V03及两树一网可读入口;Frontend owner,UI仅有必要新原语时单独组件PR。前置W3–W9稳定读写合同。
- **文件**:Frontend `src/components/RdmAuditWorkspace.tsx`、`src/api.ts`、相应项目/任务工作组件与测试;`e2e/rdm-audit.playwright.ts`及新增结构提案/依据场景。维护已合入Frontend #73的导出与水位,不重造第二下载或预览入口。
- **实施**:笔记树/文档树递归懒加载、知识多挂载、工作卡呈现候选差异/影响及确认/拒绝;普通对话显露本次实际依据。审计列表业务中文摘要、人物、时间/结果/对象路径,展开字段差异、来源/确认链/当时与当前影响、权限内证据跳转。旧数据/无权限/部分覆盖/加载/错误可读;右栏收起仍有对话确认路径。页面只消费服务端已裁剪DTO,单一异步状态owner按seq丢迟到响应。
- **验证/出口**:`npm test -- --run test/design-guard.test.ts`及相关Vitest;`npm run build`;指向auth-on真实RDM产品组合的Playwright测试(现有`e2e/rdm-audit.playwright.ts`扩展,命令`npm run e2e -- e2e/rdm-audit.playwright.ts`按实际配置核对)。视觉检查浅/深主题、窄屏、长对象名和Collapsible;网络响应不得包含无权正文或原始重放payload。
## 5. 全量模板、正式验证与交付
### W11. DHF U2–U6:固定实例、生成、Word和44份逐项发布
- **需求/owner**:TT-T01–T04/D01/D04/G01/V01–V03;原DHF任务owner。阶段5批准若覆盖此跨任务工作,原任务卡先引用本计划及批准对象,再在原登记worktree继续;不得由本任务或另一分支并发改写资产目录。
- **前置/文件**:W1已合入,W3/W4/W7接口已就绪;DHF既有方案U2–U6涉及RDM `templates.go`、`templates_embed.go`、`structure.go`、`compose.go`、`draftproposal.go`、`docsubmission.go`、`docx.go`、`doc_export_visibility.go`、`plugins/rdm/plugin.go`、模板包及`docs/records/dhf/`。Frontend消费W10的同一状态/预览路径。
- **实施顺序**:U2不可变发布包、显式用途绑定及实例化;U3有依据的逐块生成与真实编制人采纳;U4固定批准快照的原模板槽位渲染、受控下载和历史文件持久保存;U5正式RDM产品的对话/预览/离线包;U6按文档族扩至44逻辑资产。试点用项目建议书、系统需求和F02压力样本,但试点成功只放行该文档族后续,不替代全量完成。
- **保真与发布**:每份保留原件、转换派生、结构、渲染与review绑定hash;人工逐项裁定内容、蓝字/斜体/黑字示例、图形、表格/合并、页眉页脚、编号、关键格式与中文可读性。公司固定文字/项目示例、IQ/OQ/PQ/F02用途和旧DOC 49字符未定位单独列裁定。任何未通过项保持needs-review/blocked。可批准人工重建结构/槽位的替代路线,但须有同等级原件对照,不静默降标。
- **验证/出口**:每个发布资产一个有真实合成材料的正常样例与一个缺证据/冲突样例;在RDM真实产品运行“对话→生成候选→编制人采纳→审核/批准→固定Word→预览/下载”,三用户职责及撤权通过;旧批准Word在短期工件TTL后字节hash不变。`GOWORK=off go test ./internal/domain ./internal/rdmapp ./plugins/rdm -run 'TestDHF|TestTemplateBinding|TestApprovedWord' -count=1`及`make test`/`make product`或当前真实构建入口辅助验证。44/44均有逐文件结果;**目标完成需要适用且已发布的资产全部通过**,blocked条目明确保持目标未完成,不将44/44“登记”误写为“可用”。
- **停止条件**:新转换试验超过既有授权、原件hash漂移、槽位有歧义、关键格式无可读基线、人工语义结论缺失或旧批准文件保全失败,立即停止对应资产发布;其他已授权独立工作可继续。
### W12. 全目标组合验证、模型行为与正式验收
- **需求/owner**:TT-V01–V03及全部28项最终证据;Dev协调者、各组件测试owner和用户阶段7审阅。
- **场景矩阵**:至少项目A(软硬件结合、用户需求12组、已发布知识/受控文档)与项目B(不同阶段/主题、私域资料、不适用模板规则);每项目两名普通成员,另有文档编制/审核/批准职责的三个真实测试身份。覆盖新建/模板升级、项目自有扩展、提案拒绝/改后接受/确认、并发/失败/重启/撤权/项目切换、UN→SR→DI→设计→测试及风险链、当时/当前影响、可读审计与权限内证据跳转。
- **域/数据库**:SQLite与隔离PostgreSQL各完成迁移/重放/幂等;测试备份含原库、模板包、附件和批准Word,注入迁移中断/回滚/未知新schema、两实例并发写及旧二进制拒绝。没有可用PG环境则标NOT_RUN并阻塞对应正式验收,不以SQLite替代。
- **真实模型**:改前/改后同一合成任务集,在已经配置且有明确费用上限的隔离模型环境运行;普通工作不加@knowledge,检查实际最终ContextManifest、输出引用/缺项、项目/私域边界、恢复撤权及错误引用。基线`modules/backend/eval/live/`可复用公开HTTP和usage统计,但它的旧用例默认自动选择首个HITL选项;本任务新提案用例**必须禁用自动确认**,由测试操作者用真实用户身份和绑定修订的显式确认动作完成。模型自述不能充当实际输入证明。
- **模型试验资源边界**:拟最多48次任务运行(24个改前+同任务24个改后),全部模型总usage不超过300,000 tokens且费用上限人民币150元,三个上限任一先到即停。用不含生产/个人秘密的合成项目材料;每次调用前确认所选实际模型的可计费规则与剩余额度,运行时逐次累加usage。无法获得可信费用/usage数据或配置需更改时停止收费调用,保留NOT_RUN并提交修订预算;不自动购买额度。正式模型使用本计划经阶段5批准后才授权,除此之外的付费模型调用另行批准。
- **浏览器/产物**:构建固定Backend/Frontend/RDM组合和模板包,在auth-on隔离实例做真实浏览器流程;包括右栏收起、窄屏、审计筛选/操作跨页/历史、无权网络响应、唯一预览、文件字节和DHF逐文件状态。浏览器证据记录运行制品hash、组件/pins/配置及实例身份;Vite预览不能代替实际产品。
- **正式命令/出口**:各仓当前HEAD的`make test`及`make build`;Dev `make test`+`make build`及适用`make test-backend-pg`/`make test-lifecycle`/真实组合检查,缺必需服务为失败或NOT_RUN并阻塞;RDM `make product-smoke`与包外运行。阶段7先`make task-sync`固定候选,按需求ID→工作项→检查→当前SHA/输出形成矩阵,由用户审阅正常/异常/边界/回归与缺项;SELF不升级为CI/独立REPLAY。
### W13. Review、PR合入、组合核验和收口
- **owner/顺序**:组件分支各从权威`origin/main`启动;DHF U1和公共X1/X2先过各自Review/CI并在获准条件下合入,RDM消费经用户发布的真实基座tag,Frontend固定UI/Core契约,最后RDM产品与Dev组合。若确需堆叠按仓库`PARENT/PARENT_PR`登记,父先合、子同步回main;同一共享文件由单一owner串行,不跨任务隐式接管。
- **准入**:阶段6每增量有人审,阶段7固定候选后有人审;阶段8由智能体审阅者重放最小关键集并解决问题;阶段9在同一目标窗口核验最新base/head/精确pins/必需当前HEAD CI与平台准入后智能体合入,不另请人工点击。相关审计导出/水位和工作发现PR若先合入,重新评估契约及受影响测试。缺CI/失败/取消/跳过、Review失效或基座tag未就绪均不合入依赖PR。
- **结果核对**:查询真实PR merge SHA和实际组件指针;核对RDM制品内模板包、Frontend bundle、Backend API与被测候选一致,产品浏览器再现主要路径。部署和生产迁移另经明确授权;阶段10回收前核对全部写者退出及本任务/DHF唯一成果,外部备份stash/原件/收据有处理清单,不强删工作区。任务卡归档及闭合PR按既有门禁完成。
## 6. 横向覆盖与完成判据
以下表格将28项需求逐一绑定工作项及证据;阶段5批准后按实际代码/测试版本在任务卡更新。每项的产品测试状态当前都是NOT_RUN。W0/W1的SELF资产现状、E1产物和本计划不能替代正式功能/模型/浏览器证据。
| ID | 负责工作项 | 最小实际证据 |
|---|---|---|
| TT-T01 | W0/W1/W11 | 44原件hash、逻辑用途、发布门禁和包外读取 |
| TT-T02 | W0/W1/W3/W11 | 多级块、表格/图形/修订/示例的44份原件对照及人工格式结论 |
| TT-T03 | W0/W3/W11 | 不同项目适用规则、未知/不适用确认与进度分母 |
| TT-T04 | W3/W4/W11 | 模板/实例/批准版三层hash及升级历史 |
| TT-N01 | W2/W7 | 知识唯一ID多挂载、来源、结论取代及问题登记 |
| TT-N02 | W2/W4 | 项目A/B扩展隔离、旧标签与重放 |
| TT-D01 | W1/W3 | 递归混合块、稳定ID、移动/同名与旧Section兼容 |
| TT-D02 | W4/W10 | 各触发、确定人工确认、拒绝/重启/改后接受 |
| TT-D03 | W4/W12 | 并发CAS、幂等、事务失败、重启后零半态 |
| TT-D04 | W3/W4/W11 | 三权职责、状态及旧批准版本保持 |
| TT-G01 | W5/W11 | 一般来源和受控UN/SR/DI/风险/软件验证链及缺边 |
| TT-G02 | W5/W8 | 端点升版待复核、直接/间接影响与水位 |
| TT-G03 | W0/W2/W5/W7 | 人工/规则/模型/文件/网络来源与精确锚点 |
| TT-C01 | W6/W7/W12 | 两项目成员普通工作实际输入,无@knowledge |
| TT-C02 | W6/W7/W12 | 按需读取、预算裁剪、冲突/缺项及不可信来源 |
| TT-C03 | W6/W7/W9/W12 | 发布/私域/职责、跨项目/撤权/恢复无泄漏 |
| TT-C04 | W6/W7/W12 | 最终输入manifest、版本/水位与恢复刷新 |
| TT-A01 | W8/W9/W11 | 六类逐动作覆盖及宿主缺项 |
| TT-A02 | W8/W9 | 当时身份/时间/内容差异/依据/确认/影响字段 |
| TT-A03 | W4/W8 | 成功、失败、拒绝、取消、部分完成、未知与实际效果一致 |
| TT-A04 | W8/W9 | 受信run/宿主关联、迟到回执、历史缺项诚实出口 |
| TT-U01 | W8/W10 | 中文业务摘要/前后差异/影响;默认无原payload |
| TT-U02 | W5/W8/W10 | 对象标题路径、权限内锚点及唯一预览 |
| TT-U03 | W8/W10 | 按操作分页/完整归组、筛选、历史/迟到响应 |
| TT-U04 | W8/W9/W10 | audit.read与正文权限交叉及网络/导出投影 |
| TT-V01 | W0–W13 | 需求→当前精确对象→正常/异常/恢复证据矩阵 |
| TT-V02 | W6/W7/W12 | 真实模型前后对照与实际依据使用 |
| TT-V03 | W10/W12/W13 | 真实浏览器、设计守护、精确组合和当前HEAD CI |
完成声明须同时满足:44份原件各有经过内容/格式审核的可发布资产及明确适用范围,并在各自适用项目完成生成/审签/Word对照,blocked项清零;一个项目选择“不适用”不能豁免整份资产的交付;项目差异结构及真实人工确认;默认成员授权上下文;完整且可读审计;旧数据/并发/撤权恢复;两项目两成员真实模型和浏览器;当前精确组件与CI/REPLAY/阶段7审阅。哪项缺证据就标NOT_RUN/未达目标,不把局部增量说成整个两树一网完成。
## 7. 停止、变更和评审事项
| 触发 | 动作与责任 |
|---|---|
| 原件、合入的DHF合同或公开扩展与本计划不同 | 负责owner锁定真实SHA和差异;等价细节在阶段6内自检修订,改公开契约/数据/权限/技术路线则回阶段4评审 |
| DOC或44资产关键保真无法核对 | DHF owner保留blocked及完整差异,继续不依赖该资产的工作;新试验提交范围/隔离/预算获批后执行,不降低零关键静默丢失条件 |
| 同一文件有两个未合入写者/共享工作区脏 | 保留各自现场,指定唯一owner与合入顺序;不强制清理、覆盖或偷用另一分支结果 |
| 凭据、真实模型费用或隔离环境不满足预算 | 停止对应模型/浏览器/测试,不补写PASS;用户审阅具体缺项和调整后的资源方案 |
| 历史数据、批准文件或权限边界无法保全 | 停止迁移/交付受影响增量,保留备份/固定对象与错误收据,回设计/计划受影响节点重审 |
| 组件base/head、tag、schema或CI定义改变 | 重新判断已有证据与批准有效性;阶段7–9按当前目标同步、补测/复审并核验全部必需检查 |
请在阶段5评审时同时确认:W0–W13的依赖和四个阶段6增量、DHF U2–U6仍由原工作区owner交付并在其任务卡引用本计划、48次/300,000 tokens/人民币150元的模型上限,以及仅在隔离副本进行数据恢复演练。批准本计划才进入阶段6;业务代码、真实模型、浏览器、CI交付和部署在本文编写时均未执行。发布基座tag、真实运行库迁移及部署继续遵守各自明确授权边界。
@@ -0,0 +1,50 @@
# 阶段6受影响设计修订:跨成员项目宿主审计关联 r1
记录时间:2026-10-14T11:44:03.481784+08:00。状态:**待人工评审**;影响已批准阶段4方案§8.3 X2及阶段5计划W9/W8的公共合同与测试。阶段1–3范围、DYN-01、W2项目字典、W6上下文和W9已批准的安全局部不变。W9尚未完整交付,跨成员已提交业务操作的关联功能在本修订获批前不写入正式公共API。
## 发现和证据边界
Backend当前 `command_audit` 是owner/会话日志。W9隔离分支通过正负例发现:仅以会话当前projectId连接旧行,可能在会话后来转移时重归属旧操作;若对持`audit.read`者返回同项目全部行,还会暴露别人的**私有会话**。W9正在将新审计行在写入时固定可信projectId,owner仅看自己的项目绑定命令,旧无快照行明确not-recorded。这是安全且可审的局部能力,**不能**作为完整跨成员项目审计。
已批准X2设想按受信项目和RDM `audit.read`查询宿主回执,但当前Backend没有“某条宿主命令确实对应已提交、可共享的项目业务操作”的可靠关联。`project_event_shares`与`command_audit`缺少共同的sourceEvent/operation关联;会话项目绑定只证明定位,不证明该会话内容已发布。这个缺口影响TT-A01/A02/A04、TT-U04、W8/W9/W12;若不补,用户不能可靠审阅同项目另一成员实际推动的命令/后台操作。
此结论基于源码及W9当前隔离分支的SELF测试结果;未将其标为已合入或生产验证。W9当前可继续完成固定项目快照、owner私域读取、缺项coverage与负例;跨成员扩展等待本修订结论。
## 方案选择
| 路线 | 后果 | 决定建议 |
|---|---|---|
| 会话当前projectId + audit.read直接共享全部命令 | 私域泄漏且历史归属可变 | 拒绝 |
| 永远只读owner自己的命令 | 安全,但缺少同项目已提交业务操作的宿主追溯 | 保留为W9首段能力,不能满足完整目标 |
| 对**已提交项目业务事实**建立受信宿主链接,仅共享经字段授权的回执 | 需要新增最小公共写/读合同和幂等索引;可区分私域与项目事实 | 推荐;补齐W9而不重做owner日志 |
## 建议合同
在X2基础上增加可选`ProjectAuditPublisher.PublishProjectAuditLink`。申请四要素为:
| 要素 | 内容 |
|---|---|
| 场景 | 成员A确认结构/文档/关系等项目业务操作后,具项目`audit.read`且获对象披露许可的成员B可看到此操作相关的真实工具/后台结果;A的普通个人会话不因此共享 |
| 希望的公开符号 | 可选`ProjectAuditPublisher.PublishProjectAuditLink(ctx, ProjectAuditLinkRequest)`及`ProjectAuditLinkVerifier`注册回调;扩展`QueryProjectAudit`只返回owner自有行或已验证链接允许披露的项目行,附coverage和稳定分页水位 |
| 既有接口不足 | 原`Host.Audit`只写owner日志;会话/项目当前关系不能证明业务提交或可共享性;RDM事件outbox与Backend命令审计缺同一可信关联键 |
| 兼容性 | 全部为可选加法接口,旧Host和旧记录不变;无新能力时`coverage=cross-member-unsupported`,未链接旧行不自动回填成项目事实;不修改RDM pins或导入Backend internal |
链接请求最少含:Backend固定的hostAuditOffset/受信owner+项目,RDM已提交的domainCommit或Backend已提交的projectEvent来源种类与sourceID,operationID、resourceKind/resourceID、runID、disclosureClass和幂等键。**客户端、模型或未受信插件不能自行宣布已提交/可共享。** Backend验证原审计行属于同一owner与当时projectId;RDM注册的校验器以RDM存储核验source event已提交且项目/主体/操作/资源一致;Backend自身项目事件用自己的持久事实验证。只有受信执行链能申请链接。
索引按hostAuditOffset+sourceKind/sourceID保存不可变关联及项目、操作、资源和披露级别;同绑定重复幂等,异绑定拒绝,不重复增加业务效果。查询端先校验当前project `audit.read`,再调用领域资源披露判定:metadata、内容差异、历史正文、导出分别独立授权。无权正文的字段在服务端不下发;必要时隐藏对象是否存在与计数。普通owner私有会话仍只属于本人,不能只因它有projectId就出现在共享列表。
领域事务先提交业务事件和待投递outbox;后台把真实hostAuditOffset与domainCommit绑定并可重试。Backend不可达或查询结果未知时,RDM保留领域事件与“宿主链接待核/未知”状态,先查幂等回执后恢复,不回滚已经成功的业务提交,也不伪称宿主证据不存在。日志和索引使用各自source offset及RDM commit水位;完整操作分页在RDM投影层完成,不假定两来源有统一天然seq。
## 数据、授权及回归判据
- 新审计行写入时固定当时可信projectId;旧没有可信快照/提交链接的行保持owner私域或历史缺项,不按今天的会话归属回填。
- 两成员同项目:A私有会话命令对B不可见;A确认并提交的结构操作经可信链接后,B若有`audit.read`且可看对象元数据则可读授权摘要;正文/差异按当前资源权裁剪。
- 会话项目从P1转至P2后,历史链接仍固定P1;P2审计读面不能见P1旧操作。成员撤权、文档职责变化、对象废止和下载另作字段及访问复核。
- 重复投递、同key异link、outbox部分失败、链接前/后进程退出、旧schema、跨页大批次及迟到链接均保留真实结果;不泄漏其他项目/owner,时间排序不伪造跨源提交顺序。
- 发布合同前在Backend `pkg/extension`给出公开接口/负例,RDM在自己任务中提供验证回调及投递适配;Frontend只消费RDM已裁剪的可读DTO。精确版本及三仓组合测试、真实浏览器和独立重放保留阶段5计划门禁。
## 受影响工作与评审出口
W9现有安全切片可以本地提交并进入阶段6增量C的候选;它的coverage必须明示跨成员未覆盖,不能报W9整体完成。**本修订获批后**再增加链接写/读、W8领域outbox适配、W10页面的已授权关联展示,按W12两个成员与私域/撤权场景验证。阶段5原预算与44模板工作范围不变;阶段7仍须完整TT-A/U证据。
请评审上述推荐的“已提交项目事实建立可信链接”合同。若否,需给出同等安全且能让项目有权成员审计真实跨成员业务操作的替代方案;不能以owner私域切片或会话当前项目连接宣称完整目标已实现。审批仅放行此受影响公共合同与相应测试,基座tag发布仍由用户按双钥匙亲手执行。
@@ -0,0 +1,31 @@
# W6/W9:基座公开扩展申请 r1
依据:用户已批准[阶段4方案](rdm-two-trees-stage4-design-r1.md)与[阶段5计划](rdm-two-trees-stage5-implementation-test-plan-r1.md);当前处于阶段6实施。负责人:Dev/Backend公开面owner;领域策略与消费由RDM负责。此文是**实施申请与接口边界**,不是已发布surface或运行通过证据。Backend分支分别实现X1与X2,最终按最新主干串行同步其公共surface并做组合核验。
## X1:普通工作自动取得当前项目依据
| 必需四要素 | 申请内容 |
|---|---|
| 用户场景 | 同项目的成员在正常对话、文档编制及后台任务中,无需手写`@knowledge`即可使用当前有权、已确认的两树一网事实;项目/任务切换、撤权与恢复后依据及时刷新。实际模型输入须可审计。 |
| 希望的公开符号/路径 | Backend `pkg/extension`新增可选`ProjectContextRegistry`注册RDM提供方,提供方受信作用域中`Resolve`短摘要与`ReadEvidence`按引用渐进读取;可选`WorkCompletionHost.CompleteForWork`供RDM编制入口使用。Backend统一组装最终模型输入并持久化`ContextManifest`,附资源版本、来源、预算/裁剪和权限/发布水位。 |
| 当前组合为什么不足 | `Host.KnowledgeSearch`仅owner/项目检索,普通`runtime/llm.go`仅在显式`@knowledge`时注入;`runmgr`个人Memory不是可共享项目依据。`Host.Complete(ctx,prompt)`只有字符串prompt,不带可信任务绑定;`AddCommandHandler`只在被调用时执行,不能保证普通对话/后台恢复每次得到当前依据。 |
| 兼容方式 | 新增可选接口和类型,不给现有必实现`Host`/`Registry`强加方法;非项目会话原行为不变。RDM要求该能力时缺失明确不可用,不退化为默默无项目依据。Backend从认证会话/持久任务解析actor、hostProject与run/step,验证RDM项目映射,不能相信模型或请求体自报projectId;权限/资源确认在注入前和恢复前复验。 |
安全与测试:ProjectContextBundle只含当前允许的概要、要求、已确认结论、未决冲突和可再鉴权引用。草稿、未发布发现、个人会话及无职责正文不可因同项目身份泄漏;`ReadEvidence`不可接受任意owner/路径。跨项目ID、撤权后旧摘要/旧历史片段、缓存复用、后台恢复、超时和预算截断都必须有负例。Backend记录**最终送入模型**的对象/版本/摘要hash与裁剪,RDM不能以候选检索列表冒充实际输入。Compose只提供任务约束,由Backend独占最后注入;无可信工作作用域的普通`Complete`不能读取项目共享正文。
## X2:按项目读取真实宿主审计及当时人物
| 必需四要素 | 申请内容 |
|---|---|
| 用户场景 | 追溯审计要把领域操作与实际模型/工具/后台任务/run/取消/失败/投递事实关联,向有权成员展示人物、时间、动作、内容与影响,而不是只列RDM结构事件码或owner全量命令日志。 |
| 希望的公开符号/路径 | Backend `pkg/extension`新增可选`ProjectAuditHost.QueryProjectAudit`,以受信项目、actor、资源、操作/run、过滤与source offset/截止读取类型化HostAuditReceipt;支持RDM的`audit.read`领域授权回调及按对象/正文权限的服务端字段投影。写入时可绑定本操作已核验参与者的最小当时姓名/职责快照;不返回账号全目录或联系方式。 |
| 当前组合为什么不足 | 现有`Host.Audit`只写owner名下事件;owner维度查询不能证明项目归属、当前项目`audit.read`许可、文档正文权或run资源关联。RDM领域事件DTO没有完整宿主执行、失败尝试和当时身份字段,Frontend无法凭op/detail安全推算。 |
| 兼容方式 | 公开可选Host接口及类型,旧部署返回明确`coverage=unsupported`并保持旧入口可用,不伪称完整;事件和已有审计存储不直接改写。RDM旧历史缺失字段标“当时未记录”;新读面按项目/主体/资源/权限快照服务端裁剪,不能先下发原payload再在前端隐藏。 |
安全与测试:项目/资源/run归属来自Backend受信存储,不接受任意客户端projectId当授权。`audit.read`仍受项目许可,上下文、历史、导出、下载及正文差异分别受当前资源权控制。对于同owner的两个项目、两个成员、审计权无正文权、已撤权历史、恶意ID、长分页及迟到宿主回执做正负例。RDM领域`seq`与Backend source offset不假定全局全序;操作级归组在RDM只读投影完成,Backend提供真实来源及截止。
## 交付约束
W6与W9分别从Backend权威main创建独立任务工作区,独立提交/测试/人审;两者都可能改`pkg/extension/extension.go`和`surface.txt`,合入第一个后第二个同步主干、解决语义冲突并重跑受影响检查。各自按所在仓实际启动门禁工作;Backend独立开发核对clean与权威origin/main同步,Dev父任务用evidence原样保存命令×Backend SHA×完整输出的SELF收据,不强制虚构Backend的task-start或任务卡。SELF测试不提升为GATE。公开surface/API契约须有后向兼容测试及精确版本;RDM只有在基座获批准的真实发布tag可消费后接线,不导入Backend internal、不改RDM pins内容,也不自行执行需用户双钥匙的tag发布。
本申请不改变成员权限上限或自动批准结构;RDM项目字典/结构提案由另一个工作项负责。阶段6增量仍须人工评审,项目级审计/上下文真实能力由后续功能与浏览器/模型证据证明。
@@ -0,0 +1,64 @@
# W0:44份模板与唯一资产目录对照 r1
记录:2026-10-14T11:34:31.197445+08:00;来源SELF。DHF工作区HEAD `d32dc8fb6dffdd52fa33d53bcb7e802fe705a919`,目录工作树状态 `clean`;目录原字节快照SHA256 `e5088653010dd30219f465c35bebd40fe44509d60820333bab1bf7717f963c6a`,保存在源码外 `/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage6-w0-catalog-snapshot.json`。
本表逐文件验证了本任务来源台账、当前Dev原件、目录中的原件hash、来源提交对应Git对象及候选docType的一致性。它只证明资产**身份和字节来源**,不证明结构/适用性/格式经人工批准。DHF原工作区由原owner继续,当前本任务没有修改其目录。
结果:44/44路径、hash和候选类型一致;41个不同原件SHA256;44个不同逻辑templateId。当前目录状态 `{'needs-review': 44}`,适用性人工确认 0/44。目录中所有资产仍无已批准发布结论;有未决问题者不得发布。
| 序号 | 阶段与原件 | 原件SHA256 | 逻辑模板ID | 类型候选 | 当前目录状态 | 未决问题 |
|---:|---|---|---|---|---|---|
| 1 | 0. 商务阶段 / 0.1初始要求申请表.docx | `eb9d28701491` | `dhf.a7850d18814bc8ba` | `bd_intake` | needs-review | classification, fidelity |
| 2 | 1. 策划阶段 / 1.1、731QCP29-F01 项目建议书 02.docx | `3f54f060d9c5` | `dhf.2750fbaf1f67d10c` | `rd_proposal` | needs-review | classification, fidelity |
| 3 | 1. 策划阶段 / 1.2、731QCP29-F02 设计开发计划任务书 02.docx | `d152b0b4d2bb` | `dhf.d2f75aedd6dcf8b7` | `rd_design_plan` | needs-review | classification, fidelity |
| 4 | 1. 策划阶段 / 1.3、731QCP29-F07 设计开发(策划)评审记录 02.docx | `d6f3cca9c3c1` | `dhf.8848f283d317f027` | `rd_planning_review` | needs-review | classification, fidelity |
| 5 | 2. 设计输入阶段 / 2.10.1、731QCP29-F13 配置管理计划 02.docx | `94e8e7fc868d` | `dhf.e9a9112aa2852eef` | `rd_sw_config` | needs-review | classification, fidelity |
| 6 | 2. 设计输入阶段 / 2.10.2、软件维护计划模板.docx | `76fc4d4fddec` | `dhf.ca12336e5b75ed30` | `rd_sw_maintenance_plan`(新/细分候选) | needs-review | classification, fidelity, type-mapping |
| 7 | 2. 设计输入阶段 / 2.11.1、731QCP29-F16设计输入规格书模版.docx | `3fef2ed7d0aa` | `dhf.ceb63a04cb0c2fbb` | `rd_design_input_spec` | needs-review | classification, fidelity |
| 8 | 2. 设计输入阶段 / 2.12、731QCP29-F05 设计开发输入清单 02.docx | `de990de6bf13` | `dhf.3b89d5608cf50699` | `rd_design_input_list` | needs-review | classification, fidelity |
| 9 | 2. 设计输入阶段 / 2.13、RDDHF0213-xxxx产品系统设计方案.doc | `8168ea37c7ca` | `dhf.1f7e7cee081218f5` | `rd_system_design` | needs-review | classification, fidelity, doc-normalization |
| 10 | 2. 设计输入阶段 / 2.14、731QCP29-F07 设计输入评审记录.docx | `a3677cb06a39` | `dhf.4a26f4b618141021` | `rd_input_phase_review` | needs-review | classification, fidelity |
| 11 | 2. 设计输入阶段 / 2.1、731QCP29-F14 用户需求模板.doc | `2f9c6795f811` | `dhf.1e44e6e91bb1ff19` | `rd_user_needs` | needs-review | classification, fidelity, doc-normalization |
| 12 | 2. 设计输入阶段 / 2.2、RDDHF0202-xxxx 医疗器械法规和标准清单.docx | `2b36daeedc8c` | `dhf.09be7a246cf575d3` | `rd_regs_stds` | needs-review | classification, fidelity |
| 13 | 2. 设计输入阶段 / 2.3、RDDHF0203-xxxx 同类产品不良事件信息.docx | `f7cd69b08c1e` | `dhf.fa7eba95ef189eb5` | `rd_adverse_events` | needs-review | classification, fidelity |
| 14 | 2. 设计输入阶段 / 2.4、731QCP29-F15 系统需求规格书模板.doc | `b58d1b900c95` | `dhf.ab9245edad538328` | `rd_system_reqs` | needs-review | classification, fidelity, doc-normalization |
| 15 | 2. 设计输入阶段 / 2.5、731QCP29-F07 需求评审记录表.docx | `102ed2b6418b` | `dhf.9b9e08868a513bf7` | `rd_req_review` | needs-review | classification, fidelity |
| 16 | 2. 设计输入阶段 / 2.6、731QCP29-F03 风险管理计划 02.docx | `0c1484d6b295` | `dhf.10319ff21c64042d` | `rd_risk_plan` | needs-review | classification, fidelity |
| 17 | 2. 设计输入阶段 / 2.7.3、731QCP29-F04 风险管理报告 02.docx | `d4f18eb817da` | `dhf.86f9573d8ddc7ae8` | `rd_risk_report` | needs-review | classification, fidelity |
| 18 | 2. 设计输入阶段 / 2.8、731QCP29-Fxx 软件开发计划-模板.doc | `2dee0e085113` | `dhf.f5c7df2bf53bbedd` | `rd_sw_plan` | needs-review | classification, fidelity, doc-normalization |
| 19 | 2. 设计输入阶段 / 2.9、软件需求规格书模板.docx | `aa12be2b8158` | `dhf.fa4123ac9f683ade` | `rd_sw_reqs` | needs-review | classification, fidelity |
| 20 | 3. 设计输出阶段 / 3.12、原材料进货检验规范-模版.docx | `34608b520ebf` | `dhf.3a76c152e144832a` | `rd_incoming_iqc` | needs-review | classification, fidelity, external-image |
| 21 | 3. 设计输出阶段 / 3.15、产品技术要求.doc | `b787295c6c66` | `dhf.885cddb95919204c` | `rd_tech_req` | needs-review | classification, fidelity, doc-normalization |
| 22 | 3. 设计输出阶段 / 3.17、731QCP29-F06 设计开发输出清单 02.docx | `f53a2f271bf2` | `dhf.199acbb3323bd854` | `rd_design_output_list` | needs-review | classification, fidelity |
| 23 | 3. 设计输出阶段 / 3.18、731QCP29-F07 设计输出评审记录.docx | `e37ab2828e64` | `dhf.aa47448f266e8e65` | `rd_output_review` | needs-review | classification, fidelity |
| 24 | 3. 设计输出阶段 / 3.6.2、软件详细设计模板.docx | `e1089b1de6d2` | `dhf.9a2de08325a6c9cd` | `rd_sw_detail_design`(新/细分候选) | needs-review | classification, fidelity, type-mapping |
| 25 | 3. 设计输出阶段 / 3.8、RDDHF0213-xxx采购技术说明-结构&硬件.doc | `77fd422be6f3` | `dhf.33c2e9fe0c42fa0d` | `rd_purchase_spec` | needs-review | classification, fidelity, doc-normalization |
| 26 | 3. 设计输出阶段 / 3.9.1、731QCP29-Fxx 工艺流程图模板.doc | `1d702e1cdbdc` | `dhf.3e7fa9e5e236f63c` | `rd_process_flow` | needs-review | classification, fidelity, doc-normalization |
| 27 | 3. 设计输出阶段 / 3.9.2、RDSOP00xx-00xx xxx作业指导书.docx | `e2d5e596ee1f` | `dhf.95c9bb231da8822d` | `rd_work_instruction`(新/细分候选) | needs-review | classification, fidelity, type-mapping |
| 28 | 3. 设计输出阶段 / 731QCP33-F01 软件可追溯性分析报告 02.docx | `23d6402dc851` | `dhf.cc8edf04e512018f` | `rd_sw_trace_report`(新/细分候选) | needs-review | classification, fidelity, type-mapping |
| 29 | 4. 设计验证阶段 / 24.产品有效期验证.doc | `425e993090eb` | `dhf.5b326f0a5a862a13` | `rd_lifetime` | needs-review | classification, fidelity, doc-normalization |
| 30 | 4. 设计验证阶段 / 41.软件单元测试用例-模板.doc | `02f41e077038` | `dhf.de69adc198a48f70` | `rd_sw_unit_test` | needs-review | classification, fidelity, doc-normalization |
| 31 | 4. 设计验证阶段 / 42.软件集成测试用例-模板.doc | `1a373f9bec23` | `dhf.fa6315877d495f9e` | `rd_sw_integration_test`(新/细分候选) | needs-review | classification, fidelity, doc-normalization, type-mapping |
| 32 | 4. 设计验证阶段 / 43.软件系统测试用例-模板.doc | `22b211453d73` | `dhf.349e7913aab2d0cd` | `rd_sw_sys_test` | needs-review | classification, fidelity, doc-normalization |
| 33 | 4. 设计验证阶段 / 49. 软件配置管理报告-模板.doc | `243993a6ab53` | `dhf.33db9024b12d6bc3` | `rd_sw_config_report`(新/细分候选) | needs-review | classification, fidelity, doc-normalization, type-mapping |
| 34 | 4. 设计验证阶段 / 731QCP29-F07 设计验证评审记录.docx | `e37ab2828e64` | `dhf.59806d243a57f310` | `rd_verification_review` | needs-review | classification, fidelity |
| 35 | 4. 设计验证阶段 / 731QCP29-F08 设计开发验证记录 02.docx | `c5b84546e647` | `dhf.b71d90c0f60bc558` | `rd_verification_record`(新/细分候选) | needs-review | classification, fidelity, type-mapping |
| 36 | 4. 设计验证阶段 / 756QCP26-F02 验证确认报告 V03-.docx | `f5bbe7816e79` | `dhf.b96b7fad425d30a3` | `rd_verification_validation_report`(新/细分候选) | needs-review | classification, fidelity, type-mapping, process-validation-purpose |
| 37 | 5. 设计转换阶段 / 731QCP29-F04 风险管理报告 02.docx | `8a17e5b4cff1` | `dhf.7775dc1df440fd86` | `rd_risk_report_t` | needs-review | classification, fidelity |
| 38 | 5. 设计转换阶段 / 731QCP29-F07 设计转移评审记录.docx | `e37ab2828e64` | `dhf.13458c561985fcd9` | `rd_transfer_review` | needs-review | classification, fidelity |
| 39 | 5. 设计转换阶段 / 731QCP29-F09+试产总结报告+03-20250730.docx | `7600083fa867` | `dhf.a046cc77128b7b66` | `rd_trial_production_report`(新/细分候选) | needs-review | classification, fidelity, type-mapping |
| 40 | 6. 设计确认阶段 / 53. 使用错误评估报告-模板zlx.doc | `75cafe0c4c26` | `dhf.42b787cc4d5c9141` | `rd_use_error` | needs-review | classification, fidelity, doc-normalization |
| 41 | 6. 设计确认阶段 / 731QCP29-F07 设计确认评审记录.docx | `e37ab2828e64` | `dhf.a277ed8557709b89` | `rd_confirmation_review`(新/细分候选) | needs-review | classification, fidelity, type-mapping |
| 42 | 6. 设计确认阶段 / 731QCP29-F11 设计开发确认记录 02.docx | `d01ff3c56841` | `dhf.3aac75ddc616d53a` | `rd_confirmation_record`(新/细分候选) | needs-review | classification, fidelity, type-mapping |
| 43 | 6. 设计确认阶段 / 756QCP20-F01 计算机软件确认报告 02.doc | `45e57b363abf` | `dhf.6b440531e6ff12f8` | `rd_sw_validation_report`(新/细分候选) | needs-review | classification, fidelity, doc-normalization, type-mapping |
| 44 | 6. 设计确认阶段 / 756QCP26-F01 验证确认方案 V03-.docx | `525b2c40d74e` | `dhf.fb87560f7ffd8144` | `rd_validation_plan` | needs-review | classification, fidelity |
## 需在同一合同继续关闭的事项
- 内容块合同:沿用DHF的TemplateAsset/ContentBlock,补齐图形锚点、非表格重复组、字段类型/单位/校验、结构与实例ID映射;只有已合入的合同版本才可供W3和DHF U2消费。
- 原件保真:本任务E1和DHF E1/E1-R1均有转换候选,但自动保真判据未通过。图形顺序、分页、中文可读、批注/修订及49字符未定位差异逐份审核。不能凭转换exit0或44条目录宣称模板可用。
- 业务含义:F02验证确认报告、系统需求研发/项目管理用途、有效期与货架寿命、企业固定文本/项目示例、四份同字节阶段评审用途需逐项人审。DHF项目建议书评审单仍标HUMAN REVIEW / NOT_APPROVED;无结构/渲染包及人工评审,不得转published。
- 合入与交接:DHF原任务owner完成U1已批范围并记录合同/发布证据;经W1合入、精确SHA、独立Review/CI核验后,本任务从RDM权威main消费。DHF U2–U6由原owner依已批准阶段5计划续办,在其任务卡引用批准版本。
- 后续验证:W0机械对照不提升为GATE或业务审核结论。每个模板的内容/关键格式对照、适用项目生成/审签/导出及权限行为须各有当前对象证据;阻塞归属和人工决定记录在唯一DHF台账/评审单。
阶段6增量A的当前进展仅为W0来源/身份核对。W0的“共同合同已冻结、44份用途均裁定、DHF U1已合入”出口仍未达到;W2可按已批准计划独立推进,不把W0部分工作冒充整个增量完成。
@@ -0,0 +1,26 @@
# 阶段6受影响实施顺序修订:先封闭项目事务,再继续 W2/W3 r1
记录日期:2026-10-14。状态:**待人工评审**。本修订仅调整已批准阶段5计划中 W2、W3、W4 的关键依赖顺序;阶段4的事务方案、28项需求、DYN-01 人工确认、DHF 独立 owner、模型费用上限及四个增量的验收范围不变。原阶段5 r1 作为已批准历史对象保留,不在原文上回写。
## 发现与可复核对象
RDM 独立分支 `feature/rdm-two-trees-project-dictionary` 当前本地 HEAD `059fab07a53aad3a5dff796f25abedc441940303` 保留两条失败回归:`TestProjectDictionaryConcurrentIngestAndSection` 在 `-race` 下发现 `World.setDictionary` 与笔记入库/重标及文档章节写入竞争;`TestProjectDictionaryRevisionCannotDisappearWithAnotherTransaction` 证明字典修订返回成功后,另一个回滚的 `TxProject` 可使持久 revision 仍为 0。失败原始命令和输出在该分支任务卡 `.task/feature-rdm-two-trees-project-dictionary.md`,来源 SELF。较早 HEAD 的四包通过不能替代当前失败 HEAD。W2 的项目字典不能视作可提交或可合入成果。
原计划让 W3 等 DHF U1 合入,再由 W3 引出 W4。然而 W2 的正确性已依赖阶段4 §5.2 批准的 W4 基础事务约束:私有工作 World、项目写入串行与数据库 revision CAS、提交后一次发布快照,旧写入口共用版本边界。等待 W3 才处理该基础会使 W2 长期保留已知丢失更新与数据竞争。DHF U1 仍由原 owner 负责,当前未形成可消费的已合入合同;本修订不接管其工作区或复制候选。
## 仅调整的依赖与 owner
将原 W4 拆为同一工作项内两个有明确边界的实施步骤:
1. **W4a 项目事务基础先行**:W2 的 RDM owner 在原 W2 独立分支上完成基础隔离和读写协调,覆盖当前字典修订、笔记入库/重标、文档已有章节/审签以及其他已存在的项目写入口;事务私有 World 持有事件 sink,提交前不修改共享 World;同一事务持久化事件与项目 revision 条件更新,成功后原子发布只读快照,失败丢弃工作副本。跨进程 CAS 必须同时验证 SQLite 和隔离 PostgreSQL;不能以仅进程内互斥替代。W4a 不增加结构提案、人工确认公开接口,也不编辑 DHF 的 `ContentBlock`/模板资产合同。
2. **W2 完成门禁**:两条现有 RED 在普通及 race 运行下变 GREEN,补提交前后故障/回滚、两进程冲突、读者不见半新态、旧项目与旧审签重放,并跑当前 HEAD 四包和隔离数据库测试。测试证明字典 revision、笔记/文档引用与事件持久状态相符后,才把 W2 与 W4a 作为阶段6增量 A 候选;这不是 W4 全部完成。
3. **W3 保持原依赖**:仍须等待 DHF U1 真正合入、核验单一 `ContentBlock` 合同,再做递归实例和旧数据兼容;W2/W4a 必须先满足上述门禁,W3 不从 DHF 未提交目录取代码。
4. **W4b 仍在 W3 后**:结构/内容/字典/模板升级提案、一次性真人确认、授权与幂等、事件/提案/回执/outbox 同事务,以及相关 UI/工具入口,仍按已批准 W4 和阶段4方案实现。W4a 是 W4 的基础子集,不可宣称 DYN-01 已就位;完整 W4 完成仍以 W4b 和原验收测试为准。
相应依赖改为 `W0 → W2/W4a → W3(另需 W1) → W4b → W5/W8`。同一 RDM 工作区只有 W2 owner 写 W4a 涉及的事务文件;如 DHF owner 后续需改同一文件,仍按阶段5单一 owner/先后合入规则协调。W6/W9 的 Backend 独立工作、X2 已批准修订及 W11 逐资产审阅不受此顺序改变影响。
## 影响、测试和回退
提前的是**既有方案明确要求的事务隔离基础**,不降低项目权限、人工确认或旧记录兼容验收,也不放行未发布模板。W4a 若发现必须修改公开权限合同、旧事件含义或受控文档职责,先停受影响实现,另回阶段4评审。若失败,保留 W2 RED 和工作分支,已合入主干与 DHF 原现场不受改动;不能删测试、临时全局锁或跳过 PostgreSQL 来报绿。
请仅评审这一关键依赖顺序调整。批准后允许 W2 owner 先实现 W4a 并完成门禁,再继续 W3/W4b;增量 A 的阶段6实现评审和阶段7正式测试仍分别进行。
@@ -0,0 +1,161 @@
{
"source": "SELF read-only API refresh, no PR mutation or merge performed",
"checkedAt": "2026-10-14T08:43:14.885657+08:00",
"repos": [
{
"repo": "Agent-System-Backend",
"oldMain": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"main": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"changed": false
},
{
"repo": "Agent-System-Dev",
"oldMain": "add097d06137c4912a4ed9279e98ca353e4e4cf1",
"main": "add097d06137c4912a4ed9279e98ca353e4e4cf1",
"changed": false
},
{
"repo": "Agent-System-Documents",
"oldMain": "a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c",
"main": "a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c",
"changed": false
},
{
"repo": "Agent-System-Frontend",
"oldMain": "eb2d6d32f9323094d568bc9d80b4e5ed4f0af25b",
"main": "eb2d6d32f9323094d568bc9d80b4e5ed4f0af25b",
"changed": false
},
{
"repo": "Agent-System-RDM",
"oldMain": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"main": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"changed": false
},
{
"repo": "Agent-System-UI",
"oldMain": "2c4322ef56df64ad72f65907d25b048a74bb5ffc",
"main": "2c4322ef56df64ad72f65907d25b048a74bb5ffc",
"changed": false
},
{
"repo": "Development-Guidelines",
"oldMain": "2f5b19872be2a4597838a4131ad75d1be089ee5e",
"main": "2f5b19872be2a4597838a4131ad75d1be089ee5e",
"changed": false
}
],
"prs": [
{
"repo": "Agent-System-Backend",
"number": 193,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/193",
"oldHead": "5f834544b0b808cb16214a36725f2ae3cb90bfd4",
"head": "5f834544b0b808cb16214a36725f2ae3cb90bfd4",
"state": "open",
"merged": false,
"mergeCommit": null,
"headChanged": false
},
{
"repo": "Agent-System-Dev",
"number": 488,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/488",
"oldHead": "334d2e2375095f3b4160ab232296f9c92065c565",
"head": "334d2e2375095f3b4160ab232296f9c92065c565",
"state": "open",
"merged": false,
"mergeCommit": null,
"headChanged": false
},
{
"repo": "Agent-System-Dev",
"number": 489,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/489",
"oldHead": "3e7f0360087b126f41fa9ce18dbd1e53d0a8f067",
"head": "3e7f0360087b126f41fa9ce18dbd1e53d0a8f067",
"state": "open",
"merged": false,
"mergeCommit": null,
"headChanged": false
},
{
"repo": "Agent-System-Dev",
"number": 512,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/512",
"oldHead": "e31443a8ff1f099f9b2ef320c295b0ddcdaf503d",
"head": "e31443a8ff1f099f9b2ef320c295b0ddcdaf503d",
"state": "open",
"merged": false,
"mergeCommit": null,
"headChanged": false
},
{
"repo": "Agent-System-Documents",
"number": 89,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/89",
"oldHead": "b8df6f3c2a3180b06c61d2303bbfea9a3914f186",
"head": "b8df6f3c2a3180b06c61d2303bbfea9a3914f186",
"state": "open",
"merged": false,
"mergeCommit": null,
"headChanged": false
},
{
"repo": "Agent-System-Documents",
"number": 95,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/95",
"oldHead": "c7cb2d8d89aaef0329c9a8a2045fcd42abb36e39",
"head": "c7cb2d8d89aaef0329c9a8a2045fcd42abb36e39",
"state": "open",
"merged": false,
"mergeCommit": null,
"headChanged": false
},
{
"repo": "Agent-System-Frontend",
"number": 73,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/73",
"oldHead": "d9bb780384b16f661d71a5e6ad288a77426d9d98",
"head": "d9bb780384b16f661d71a5e6ad288a77426d9d98",
"state": "open",
"merged": false,
"mergeCommit": null,
"headChanged": false
},
{
"repo": "Agent-System-Frontend",
"number": 79,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/79",
"oldHead": "006c81567546deb1cbd95abbb7ca6a36f99241b2",
"head": "006c81567546deb1cbd95abbb7ca6a36f99241b2",
"state": "open",
"merged": false,
"mergeCommit": null,
"headChanged": false
},
{
"repo": "Agent-System-RDM",
"number": 301,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/301",
"oldHead": "6252f62524ef34360fdcdf8844d7e729378ffbfb",
"head": "6252f62524ef34360fdcdf8844d7e729378ffbfb",
"state": "open",
"merged": false,
"mergeCommit": null,
"headChanged": false
},
{
"repo": "Agent-System-RDM",
"number": 307,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/307",
"oldHead": "8ae52a6d9a4d8b60e875f9c56862f34dffed7705",
"head": "8ae52a6d9a4d8b60e875f9c56862f34dffed7705",
"state": "open",
"merged": false,
"mergeCommit": null,
"headChanged": false
}
],
"files": []
}
@@ -0,0 +1,32 @@
[
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/domain/persist.go",
"sha256": "7d16e107d522311e106625776d8414c6d2c5d7bc19915364345298afde7fbc2c",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/domain/persist.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/rdmapp/tx.go",
"sha256": "94892e4b85bf395c2f5059b26c9c694f202c4d1898af6c57bdd69b2d020b05f5",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/rdmapp/tx.go"
},
{
"repo": "Agent-System-Frontend",
"ref": "d9bb780384b16f661d71a5e6ad288a77426d9d98",
"pr": 73,
"path": "src/components/RdmAuditWorkspace.tsx",
"sha256": "825c3dc3f01d28e41c6a05e8ece09663f65c714213d2808fef7e618f9cf01fa1",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/pr-candidates/Agent-System-Frontend/73/src/components/RdmAuditWorkspace.tsx"
},
{
"repo": "Agent-System-Documents",
"ref": "c7cb2d8d89aaef0329c9a8a2045fcd42abb36e39",
"pr": 95,
"path": "docs/proposals/2026-10-13-fast-slow-u3-r03-evidence-backed-judgments-design.md",
"sha256": "3acd6b99184748ceb25453a30c7d4e3c972fbe465d6dc9b11709fa725264038e",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/pr-candidates/Agent-System-Documents/95/docs/proposals/2026-10-13-fast-slow-u3-r03-evidence-backed-judgments-design.md"
}
]
@@ -0,0 +1,876 @@
{
"source": "SELF authenticated PR metadata and changed file list",
"checkedAt": "2026-10-13T19:45:45.206279+00:00",
"prs": [
{
"repo": "Agent-System-Backend",
"number": 193,
"title": "[WIP] Verify source-backed stage judgments before publication",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/193",
"state": "open",
"merged": false,
"head": "5f834544b0b808cb16214a36725f2ae3cb90bfd4",
"headStable": true,
"files": [
{
"path": "deps/agent-system-core",
"status": "changed",
"additions": 1,
"deletions": 1,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "eval/live/work_checkpoints_persistence_test.go",
"status": "added",
"additions": 40,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "eval/live/work_checkpoints_test.go",
"status": "added",
"additions": 295,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/app/app.go",
"status": "changed",
"additions": 19,
"deletions": 20,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/app/task_startup_test.go",
"status": "added",
"additions": 96,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/cardsvc/cardsvc.go",
"status": "changed",
"additions": 54,
"deletions": 3,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/cardsvc/task_projection.go",
"status": "added",
"additions": 63,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/cardsvc/task_projection_test.go",
"status": "added",
"additions": 63,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/cardsvc/task_visibility.go",
"status": "added",
"additions": 98,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/cardsvc/task_visibility_test.go",
"status": "added",
"additions": 41,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/background_card_test.go",
"status": "changed",
"additions": 37,
"deletions": 16,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/checkpoint_claim_guard.go",
"status": "added",
"additions": 99,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/checkpoint_claim_guard_test.go",
"status": "added",
"additions": 89,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/events.go",
"status": "changed",
"additions": 37,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/material.go",
"status": "changed",
"additions": 67,
"deletions": 26,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/material_evidence.go",
"status": "added",
"additions": 286,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/material_evidence_test.go",
"status": "added",
"additions": 414,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/material_sources.go",
"status": "added",
"additions": 165,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/material_sources_test.go",
"status": "added",
"additions": 171,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/material_test.go",
"status": "changed",
"additions": 15,
"deletions": 18,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/recovery_hold_test.go",
"status": "changed",
"additions": 2,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/runmgr.go",
"status": "changed",
"additions": 192,
"deletions": 61,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/subagent_n2_test.go",
"status": "changed",
"additions": 42,
"deletions": 3,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/subagent_transcript.go",
"status": "changed",
"additions": 19,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/task_checkpoint.go",
"status": "added",
"additions": 205,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/task_checkpoint_evidence_test.go",
"status": "added",
"additions": 227,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/task_checkpoint_test.go",
"status": "added",
"additions": 200,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/task_notice_revalidation_test.go",
"status": "added",
"additions": 56,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/task_projection.go",
"status": "added",
"additions": 409,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runmgr/task_projection_test.go",
"status": "added",
"additions": 186,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runtime/checkpoint_plugin_test.go",
"status": "added",
"additions": 16,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runtime/llm_direct.go",
"status": "changed",
"additions": 3,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runtime/llm_test.go",
"status": "changed",
"additions": 4,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runtime/material_final_reserve.go",
"status": "added",
"additions": 31,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runtime/material_final_reserve_test.go",
"status": "added",
"additions": 29,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runtime/provider_run_identity.go",
"status": "added",
"additions": 30,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runtime/run_budget_stream.go",
"status": "added",
"additions": 65,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runtime/run_budget_stream_test.go",
"status": "added",
"additions": 35,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runtime/sub_loop.go",
"status": "changed",
"additions": 135,
"deletions": 11,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runtime/usage_n3_test.go",
"status": "changed",
"additions": 44,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runtime/work_checkpoint.go",
"status": "added",
"additions": 97,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/runtime/work_checkpoint_test.go",
"status": "added",
"additions": 367,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/server/server.go",
"status": "changed",
"additions": 36,
"deletions": 6,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/server/task_sources.go",
"status": "added",
"additions": 54,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/server/task_sources_test.go",
"status": "added",
"additions": 38,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/server/work_checkpoint_eval_budget_test.go",
"status": "added",
"additions": 309,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/server/work_checkpoint_eval_test.go",
"status": "added",
"additions": 473,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/store/content.go",
"status": "changed",
"additions": 39,
"deletions": 13,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/store/messages.go",
"status": "changed",
"additions": 22,
"deletions": 10,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/store/notices.go",
"status": "changed",
"additions": 23,
"deletions": 3,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/store/task_deletion_test.go",
"status": "added",
"additions": 55,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/store/task_projection.go",
"status": "added",
"additions": 307,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/store/task_projection_test.go",
"status": "added",
"additions": 158,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/tools/exec_backend_test.go",
"status": "changed",
"additions": 13,
"deletions": 5,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
]
},
{
"repo": "Agent-System-Dev",
"number": 488,
"title": "Pin the audit overview export",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/488",
"state": "open",
"merged": false,
"head": "334d2e2375095f3b4160ab232296f9c92065c565",
"headStable": true,
"files": [
{
"path": ".task/feature-rdm-audit-export-entry.md",
"status": "added",
"additions": 170,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "modules/frontend",
"status": "changed",
"additions": 1,
"deletions": 1,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "scripts/e2e.sh",
"status": "changed",
"additions": 25,
"deletions": 4,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
]
},
{
"repo": "Agent-System-Dev",
"number": 489,
"title": "Pin the approved U8, U7, and export status",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/489",
"state": "open",
"merged": false,
"head": "3e7f0360087b126f41fa9ce18dbd1e53d0a8f067",
"headStable": true,
"files": [
{
"path": ".task/feature-proposal-status-20261012.md",
"status": "added",
"additions": 132,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "modules/documents",
"status": "changed",
"additions": 1,
"deletions": 1,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
]
},
{
"repo": "Agent-System-Dev",
"number": 512,
"title": "[WIP] Deliver progressive U2/U3 work with evidence-backed judgments",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/512",
"state": "open",
"merged": false,
"head": "e31443a8ff1f099f9b2ef320c295b0ddcdaf503d",
"headStable": true,
"files": [
{
"path": ".task/feature-fast-slow-u2-u3-plan.md",
"status": "added",
"additions": 6760,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "PROJECT.md",
"status": "changed",
"additions": 1,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "modules/backend",
"status": "changed",
"additions": 1,
"deletions": 1,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "modules/core",
"status": "changed",
"additions": 1,
"deletions": 1,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "modules/documents",
"status": "changed",
"additions": 1,
"deletions": 1,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "modules/frontend",
"status": "changed",
"additions": 1,
"deletions": 1,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "modules/ui",
"status": "changed",
"additions": 1,
"deletions": 1,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "tests/test_svc.py",
"status": "changed",
"additions": 7,
"deletions": 3,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "tests/test_svc_recover.py",
"status": "changed",
"additions": 22,
"deletions": 14,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
]
},
{
"repo": "Agent-System-Documents",
"number": 89,
"title": "Record the approved U8, U7, and export status",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/89",
"state": "open",
"merged": false,
"head": "b8df6f3c2a3180b06c61d2303bbfea9a3914f186",
"headStable": true,
"files": [
{
"path": "docs/proposals/2026-10-11-rdm-two-trees-trace-audit-integration.md",
"status": "changed",
"additions": 3,
"deletions": 2,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "docs/proposals/2026-10-12-service-restart-data-recovery.md",
"status": "changed",
"additions": 4,
"deletions": 3,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "docs/proposals/2026-10-12-svc-unified-deploy-and-login-key.md",
"status": "changed",
"additions": 3,
"deletions": 2,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
]
},
{
"repo": "Agent-System-Documents",
"number": 95,
"title": "[WIP] Record U3 evidence design, implementation, and validation",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/95",
"state": "open",
"merged": false,
"head": "c7cb2d8d89aaef0329c9a8a2045fcd42abb36e39",
"headStable": true,
"files": [
{
"path": "docs/proposals/2026-10-12-fast-slow-channel-display.md",
"status": "changed",
"additions": 8,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "docs/proposals/2026-10-13-fast-slow-u2-u3-plan.md",
"status": "added",
"additions": 462,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "docs/proposals/2026-10-13-fast-slow-u3-quality-implementation-plan.md",
"status": "added",
"additions": 259,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "docs/proposals/2026-10-13-fast-slow-u3-quality-revision.md",
"status": "added",
"additions": 45,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "docs/proposals/2026-10-13-fast-slow-u3-r03-evidence-backed-judgments-design.md",
"status": "added",
"additions": 56,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "docs/proposals/2026-10-13-fast-slow-u3-r03-evidence-implementation-plan.md",
"status": "added",
"additions": 144,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "docs/proposals/INDEX.md",
"status": "changed",
"additions": 4,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "docs/reports/2026-10-13-fast-slow-u2-u3-code-review.md",
"status": "added",
"additions": 135,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "docs/reports/2026-10-13-fast-slow-u2-u3-extra-a01-review.md",
"status": "added",
"additions": 83,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "docs/reports/2026-10-13-fast-slow-u2-u3-validation.md",
"status": "added",
"additions": 130,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
]
},
{
"repo": "Agent-System-Frontend",
"number": 73,
"title": "Add audit overview export without widening the readiness gate",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/73",
"state": "open",
"merged": false,
"head": "d9bb780384b16f661d71a5e6ad288a77426d9d98",
"headStable": true,
"files": [
{
"path": "e2e/rdm-audit.playwright.ts",
"status": "changed",
"additions": 20,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "src/components/RdmAuditWorkspace.tsx",
"status": "changed",
"additions": 114,
"deletions": 2,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "src/store.ts",
"status": "changed",
"additions": 6,
"deletions": 2,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "src/styles.css",
"status": "changed",
"additions": 8,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "src/workspaces.ts",
"status": "changed",
"additions": 18,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "test/workspaces.test.ts",
"status": "changed",
"additions": 26,
"deletions": 1,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
]
},
{
"repo": "Agent-System-Frontend",
"number": 79,
"title": "[WIP] Preserve reading and show pending stage findings",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/79",
"state": "open",
"merged": false,
"head": "006c81567546deb1cbd95abbb7ca6a36f99241b2",
"headStable": true,
"files": [
{
"path": "e2e/work-checkpoints.playwright.ts",
"status": "added",
"additions": 63,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "knip-baseline.json",
"status": "changed",
"additions": 1,
"deletions": 1,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "src/api.ts",
"status": "changed",
"additions": 2,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "src/components/ConversationWork.tsx",
"status": "changed",
"additions": 1,
"deletions": 1,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "src/components/PreviewPane.tsx",
"status": "changed",
"additions": 7,
"deletions": 4,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "src/components/Workbench.tsx",
"status": "changed",
"additions": 1,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "src/contracts.ts",
"status": "changed",
"additions": 27,
"deletions": 1,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "src/previewtabs.ts",
"status": "changed",
"additions": 2,
"deletions": 1,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "src/store.ts",
"status": "changed",
"additions": 74,
"deletions": 10,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "test/work-state.test.ts",
"status": "changed",
"additions": 60,
"deletions": 1,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
]
},
{
"repo": "Agent-System-RDM",
"number": 301,
"title": "Bind audit exports to the captured watermark",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/301",
"state": "open",
"merged": false,
"head": "6252f62524ef34360fdcdf8844d7e729378ffbfb",
"headStable": true,
"files": [
{
"path": ".task/feature-rdm-u5-export-completion.md",
"status": "added",
"additions": 73,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/domain/persist.go",
"status": "changed",
"additions": 21,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/rdmapp/cgraph_export.go",
"status": "changed",
"additions": 15,
"deletions": 42,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/rdmapp/export_artifact.go",
"status": "changed",
"additions": 33,
"deletions": 17,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/rdmapp/export_report.go",
"status": "added",
"additions": 249,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/rdmapp/u5_export_test.go",
"status": "changed",
"additions": 203,
"deletions": 5,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "internal/rdmapp/xlsx.go",
"status": "changed",
"additions": 80,
"deletions": 52,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "plugins/rdm/plugin.go",
"status": "changed",
"additions": 6,
"deletions": 4,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
]
},
{
"repo": "Agent-System-RDM",
"number": 307,
"title": "Pin the audit overview export frontend",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/307",
"state": "open",
"merged": false,
"head": "8ae52a6d9a4d8b60e875f9c56862f34dffed7705",
"headStable": true,
"files": [
{
"path": ".task/feature-rdm-pin-frontend-export.md",
"status": "added",
"additions": 32,
"deletions": 0,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"path": "pins/agent-system-frontend",
"status": "changed",
"additions": 1,
"deletions": 1,
"patchSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
]
}
],
"errors": []
}
@@ -0,0 +1,538 @@
{
"source": "SELF authenticated read-only API snapshot",
"checkedAt": "2026-10-13T19:41:27.766582+00:00",
"readIdentity": {
"login": "weichen"
},
"credentialSource": "~/.secrets/gitea; unique token bound to verified git-home URL_PREFIX; token omitted",
"repos": [
{
"repo": "Agent-System-Backend",
"main": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"openPulls": [
{
"number": 193,
"title": "[WIP] Verify source-backed stage judgments before publication",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/193",
"state": "open",
"draft": true,
"head": "5f834544b0b808cb16214a36725f2ae3cb90bfd4",
"headRef": "feature/fast-slow-u2-u3",
"base": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"baseRef": "main",
"updatedAt": "2026-10-13T18:20:36Z",
"relevanceCandidate": true
},
{
"number": 185,
"title": "Commit account changes and audits in one transaction",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/185",
"state": "open",
"draft": false,
"head": "9754531cc98393cb8a936d0e25a7526dfabbe2c4",
"headRef": "feature/u7-account-tx-audit",
"base": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"baseRef": "main",
"updatedAt": "2026-10-12T15:49:44Z",
"relevanceCandidate": true
},
{
"number": 183,
"title": "Refuse a second SQLite service before migration",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/183",
"state": "open",
"draft": false,
"head": "167609b3db6ef850c31eee71421c650f849a009c",
"headRef": "feature/u8-sqlite-instance-guard",
"base": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"baseRef": "main",
"updatedAt": "2026-10-12T15:46:24Z",
"relevanceCandidate": false
}
],
"pages": 1
},
{
"repo": "Agent-System-Dev",
"main": "add097d06137c4912a4ed9279e98ca353e4e4cf1",
"openPulls": [
{
"number": 512,
"title": "[WIP] Deliver progressive U2/U3 work with evidence-backed judgments",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/512",
"state": "open",
"draft": true,
"head": "e31443a8ff1f099f9b2ef320c295b0ddcdaf503d",
"headRef": "feature/fast-slow-u2-u3-plan",
"base": "add097d06137c4912a4ed9279e98ca353e4e4cf1",
"baseRef": "main",
"updatedAt": "2026-10-13T18:20:38Z",
"relevanceCandidate": true
},
{
"number": 489,
"title": "Pin the approved U8, U7, and export status",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/489",
"state": "open",
"draft": false,
"head": "3e7f0360087b126f41fa9ce18dbd1e53d0a8f067",
"headRef": "feature/proposal-status-20261012",
"base": "add097d06137c4912a4ed9279e98ca353e4e4cf1",
"baseRef": "main",
"updatedAt": "2026-10-12T15:54:15Z",
"relevanceCandidate": true
},
{
"number": 488,
"title": "Pin the audit overview export",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/488",
"state": "open",
"draft": false,
"head": "334d2e2375095f3b4160ab232296f9c92065c565",
"headRef": "feature/rdm-audit-export-entry",
"base": "add097d06137c4912a4ed9279e98ca353e4e4cf1",
"baseRef": "main",
"updatedAt": "2026-10-12T16:04:53Z",
"relevanceCandidate": true
},
{
"number": 486,
"title": "Pin account transactions and note deprecated credential flags",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/486",
"state": "open",
"draft": false,
"head": "5156d66302b3dcabd0a2306b1857d12ea4ec6a08",
"headRef": "feature/u7-account-tx-audit",
"base": "add097d06137c4912a4ed9279e98ca353e4e4cf1",
"baseRef": "main",
"updatedAt": "2026-10-12T15:50:47Z",
"relevanceCandidate": true
},
{
"number": 482,
"title": "Pin the SQLite activity guard and document its refusals",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/482",
"state": "open",
"draft": false,
"head": "d5e8d6ab7a368f08b29e968b6f65f8898f2b28f5",
"headRef": "feature/u8-sqlite-instance-guard",
"base": "add097d06137c4912a4ed9279e98ca353e4e4cf1",
"baseRef": "main",
"updatedAt": "2026-10-12T15:47:57Z",
"relevanceCandidate": true
},
{
"number": 471,
"title": "Close merged task cards (feature/card-close-20261012-123313Z)",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/471",
"state": "open",
"draft": false,
"head": "f0e8a87b8e2dca989637d3b136faf2f0bc3ddd4b",
"headRef": "feature/card-close-20261012-123313Z",
"base": "add097d06137c4912a4ed9279e98ca353e4e4cf1",
"baseRef": "main",
"updatedAt": "2026-10-12T12:33:14Z",
"relevanceCandidate": false
}
],
"pages": 1
},
{
"repo": "Agent-System-Documents",
"main": "a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c",
"openPulls": [
{
"number": 95,
"title": "[WIP] Record U3 evidence design, implementation, and validation",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/95",
"state": "open",
"draft": true,
"head": "c7cb2d8d89aaef0329c9a8a2045fcd42abb36e39",
"headRef": "feature/fast-slow-u2-u3-plan",
"base": "a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c",
"baseRef": "main",
"updatedAt": "2026-10-13T18:20:37Z",
"relevanceCandidate": true
},
{
"number": 89,
"title": "Record the approved U8, U7, and export status",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/89",
"state": "open",
"draft": false,
"head": "b8df6f3c2a3180b06c61d2303bbfea9a3914f186",
"headRef": "feature/u8-u7-rdm-export-status",
"base": "a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c",
"baseRef": "main",
"updatedAt": "2026-10-12T15:43:05Z",
"relevanceCandidate": true
}
],
"pages": 1
},
{
"repo": "Agent-System-Frontend",
"main": "eb2d6d32f9323094d568bc9d80b4e5ed4f0af25b",
"openPulls": [
{
"number": 79,
"title": "[WIP] Preserve reading and show pending stage findings",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/79",
"state": "open",
"draft": true,
"head": "006c81567546deb1cbd95abbb7ca6a36f99241b2",
"headRef": "feature/fast-slow-u2-u3",
"base": "eb2d6d32f9323094d568bc9d80b4e5ed4f0af25b",
"baseRef": "main",
"updatedAt": "2026-10-13T18:20:36Z",
"relevanceCandidate": true
},
{
"number": 73,
"title": "Add audit overview export without widening the readiness gate",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/73",
"state": "open",
"draft": false,
"head": "d9bb780384b16f661d71a5e6ad288a77426d9d98",
"headRef": "feature/rdm-audit-export-entry",
"base": "eb2d6d32f9323094d568bc9d80b4e5ed4f0af25b",
"baseRef": "main",
"updatedAt": "2026-10-12T15:38:15Z",
"relevanceCandidate": true
}
],
"pages": 1
},
{
"repo": "Agent-System-RDM",
"main": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"openPulls": [
{
"number": 307,
"title": "Pin the audit overview export frontend",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/307",
"state": "open",
"draft": false,
"head": "8ae52a6d9a4d8b60e875f9c56862f34dffed7705",
"headRef": "feature/rdm-pin-frontend-export",
"base": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"baseRef": "main",
"updatedAt": "2026-10-12T15:58:16Z",
"relevanceCandidate": true
},
{
"number": 301,
"title": "Bind audit exports to the captured watermark",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/301",
"state": "open",
"draft": false,
"head": "6252f62524ef34360fdcdf8844d7e729378ffbfb",
"headRef": "feature/rdm-u5-export-completion",
"base": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"baseRef": "main",
"updatedAt": "2026-10-12T15:31:06Z",
"relevanceCandidate": true
}
],
"pages": 1
},
{
"repo": "Agent-System-UI",
"main": "2c4322ef56df64ad72f65907d25b048a74bb5ffc",
"openPulls": [
{
"number": 51,
"title": "[WIP] Separate source records, judgments, and pending questions",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-UI/pulls/51",
"state": "open",
"draft": true,
"head": "ac5b617e9e7ee6b9417b36c66d7c6e3b58ecbb42",
"headRef": "feature/fast-slow-u2-u3",
"base": "2c4322ef56df64ad72f65907d25b048a74bb5ffc",
"baseRef": "main",
"updatedAt": "2026-10-13T18:20:36Z",
"relevanceCandidate": false
}
],
"pages": 1
},
{
"repo": "Development-Guidelines",
"main": "2f5b19872be2a4597838a4131ad75d1be089ee5e",
"openPulls": [],
"pages": 1
}
],
"files": [
{
"repo": "Agent-System-Backend",
"ref": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"path": "internal/ctxasm/ctxasm.go",
"blob": "010a3d55235ce1caf419a521421358a851b64729",
"sha256": "f5e7350628d1289c8f024dff5d21db04f733366a98100d31258f3e49b77ff933",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Backend/internal/ctxasm/ctxasm.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/internal/ctxasm/ctxasm.go"
},
{
"repo": "Agent-System-Backend",
"ref": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"path": "internal/ingest/ingest.go",
"blob": "e409c49b4d23bf49318d91b395f8b070b62ed071",
"sha256": "7a9249a212b91488d3a273afc64f61e8b2ce50ea4187db05ad4eda3fd3ccf163",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Backend/internal/ingest/ingest.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/internal/ingest/ingest.go"
},
{
"repo": "Agent-System-Backend",
"ref": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"path": "internal/runmgr/memory.go",
"blob": "c9bf4326df411cacd289ef767fd003642da6fc2f",
"sha256": "03d235349d56e3feae29d36b63c284857ec77595aa2e647730f8e192db2fa7a1",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Backend/internal/runmgr/memory.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/internal/runmgr/memory.go"
},
{
"repo": "Agent-System-Backend",
"ref": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"path": "internal/runtime/llm.go",
"blob": "d06dae1149ae402f1482fbec14069d2062a37bb7",
"sha256": "5ae366d8c2c01e2b79fb6ff9d3f78147b82dce9dccee163d8cc880f5d3caa8d1",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Backend/internal/runtime/llm.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/internal/runtime/llm.go"
},
{
"repo": "Agent-System-Backend",
"ref": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"path": "internal/store/audit.go",
"blob": "b5479a852abe47be35884c2bf55a0bbddc0982f9",
"sha256": "54a7c6ab8315f3c0b3f0ec97ab857925a7a745453a2a41fb28051e54423ecf9a",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Backend/internal/store/audit.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/internal/store/audit.go"
},
{
"repo": "Agent-System-Backend",
"ref": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"path": "pkg/extension/extension.go",
"blob": "2454e4e0337eb6f3858f01b58b49f3d809c11e8d",
"sha256": "57e00f6e5d21e28c4bfddf8b2fe3929e70826581d3feb94d557f1c9e2830ed42",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Backend/pkg/extension/extension.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/pkg/extension/extension.go"
},
{
"repo": "Agent-System-Backend",
"ref": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"path": "pkg/extension/host.go",
"blob": "c528b810020b95c4d1b39a9637cebb0abdb2608c",
"sha256": "4ad991e1a63c2051c96ff50ae55bf346ebb16aa56e2fef5f408d8fd03bc61f2d",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Backend/pkg/extension/host.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/pkg/extension/host.go"
},
{
"repo": "Agent-System-Backend",
"ref": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"path": "pkg/extension/projects.go",
"blob": "d0f50421836b90bef13cc5ee05bbcd80b897322f",
"sha256": "f00cca35978c61d267e692b6960318bd874d219114c184435ae6c313c7bbefaa",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Backend/pkg/extension/projects.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/pkg/extension/projects.go"
},
{
"repo": "Agent-System-Dev",
"ref": "add097d06137c4912a4ed9279e98ca353e4e4cf1",
"path": "PROJECT.md",
"blob": "10eba3415ae45bee28b0e1c0ae7b3fe371a8f18b",
"sha256": "38ef642f201d005be043b9228b84af7b13a0edffdb33807a6d033067e8a73b6e",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Dev/PROJECT.md",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/src/commit/add097d06137c4912a4ed9279e98ca353e4e4cf1/PROJECT.md"
},
{
"repo": "Agent-System-Dev",
"ref": "add097d06137c4912a4ed9279e98ca353e4e4cf1",
"path": "policy/delivery.md",
"blob": "252aa9c2e4d4878fefb21eaab56543878bb46eac",
"sha256": "cbf854a915fd32d18a33c0a9b342ac6e5914ad10d0ec6563ccf4016d8b152614",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Dev/policy/delivery.md",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/src/commit/add097d06137c4912a4ed9279e98ca353e4e4cf1/policy/delivery.md"
},
{
"repo": "Agent-System-Documents",
"ref": "a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c",
"path": "docs/proposals/2026-10-11-rdm-template-dialog-generation.md",
"blob": "a843824d11a222785e26ac5e3c74855c1f7bcc92",
"sha256": "70c816164b612cddf56ed897d3528cfedc8db3d024a49a8b28fe03e9136a5a20",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Documents/docs/proposals/2026-10-11-rdm-template-dialog-generation.md",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/src/commit/a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c/docs/proposals/2026-10-11-rdm-template-dialog-generation.md"
},
{
"repo": "Agent-System-Documents",
"ref": "a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c",
"path": "docs/proposals/2026-10-13-system-project-membership.md",
"blob": "db9aa3d7094f9f6df88e61516ed0d539d471cbee",
"sha256": "0c622e12fde58e38b50929299e3c99ebb28956973b7b2803e03af6a606121987",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Documents/docs/proposals/2026-10-13-system-project-membership.md",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/src/commit/a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c/docs/proposals/2026-10-13-system-project-membership.md"
},
{
"repo": "Agent-System-Documents",
"ref": "a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c",
"path": "docs/proposals/INDEX.md",
"blob": "4043a589170b020bfed3c62c4f50ad2ada0fd821",
"sha256": "cf9e330cec2e5c329e941c8c42488dd1e694de98fe28a0f713f25e8e036c4538",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Documents/docs/proposals/INDEX.md",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/src/commit/a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c/docs/proposals/INDEX.md"
},
{
"repo": "Agent-System-Frontend",
"ref": "eb2d6d32f9323094d568bc9d80b4e5ed4f0af25b",
"path": "src/components/RdmAuditWorkspace.tsx",
"blob": "7653201b70934b85a82dc02bcd900c4e6511fb31",
"sha256": "ac406be59baab7eeb859dba49636aa5af579dbcf7aadbf1929a0aa346a56d1d6",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Frontend/src/components/RdmAuditWorkspace.tsx",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/src/commit/eb2d6d32f9323094d568bc9d80b4e5ed4f0af25b/src/components/RdmAuditWorkspace.tsx"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "README.md",
"blob": "5caeb8dd714d6e6f5999a7bec324bea686f8a9cb",
"sha256": "7dbe615f0aebe88bc2bcd0c35c4e102ba2917738bcf0c0e7ffc8bf5810676d07",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/README.md",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/README.md"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "go.mod",
"blob": "fe5c6e3bf641f9631b595e14d2a6769207c31d13",
"sha256": "9408a2113325d19339d4533f065c8371f7d9ef0141faa427f9c104a1bbd1612f",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/go.mod",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/go.mod"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/domain/compliance.go",
"blob": "badff2b02703a630ebe1ff62b247530144b3bea5",
"sha256": "5791c647bfd1579b3c512006c9ce03200db13023dc350324fccecb2d29da0fb9",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/domain/compliance.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/compliance.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/domain/data/labels_seed.json",
"blob": "4af596ea44a4d98bd8ee0540296a678fcc895aa0",
"sha256": "2267284dacaa19693f531722de0233ea9bbf3b74f54bc58dd71648d60416d22e",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/domain/data/labels_seed.json",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/data/labels_seed.json"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/domain/doctree.go",
"blob": "e2441f7bf3f0961f51fc4fd9d18058f83b0967ec",
"sha256": "9d0d9d72b252de0011be863ab50fd976f54bcd239b27d42ab3f3cc7b94727285",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/domain/doctree.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/doctree.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/domain/eventlog.go",
"blob": "aa0fac0b6d6a1d56bdc2e9f859a3bfb991533eaf",
"sha256": "3450726fc9c0dc4a3fea6b5225fff081d5d56ccdf151ce8a1b1a8fbc57333e8c",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/domain/eventlog.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/eventlog.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/domain/labels.go",
"blob": "ce2f15505463ecb7a0372aebfe77bc1d4851ab3e",
"sha256": "2c796df8c0ace2d8044a83d4115c4f5956d71d9049c87b7fbe9a06e6fdae944c",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/domain/labels.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/labels.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/domain/notetree.go",
"blob": "e4d8003799b174d6a61026cb6be2adeac7bc953e",
"sha256": "bb6228fd00fbc0a5aaff4958cd70c7789ff1d7d2c34dcb1ee2dfc1630a43ef0e",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/domain/notetree.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/notetree.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/rdmapp/compose.go",
"blob": "b9fddaf7178968f05f1c8b3cd8b91aeaaa786475",
"sha256": "b2da219785cbf44ee53d1408e56628f44619c8dd93fb4415f2daa9013b591349",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/rdmapp/compose.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/compose.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/rdmapp/inspection.go",
"blob": "5d0eb1c377a344acb70dc82202d2ffd2f0599ac7",
"sha256": "27368362233f8ff8b0c3e2d7c78a12162e5d12dc2545347b1270521182a2651e",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/rdmapp/inspection.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/inspection.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/rdmapp/knowledge_publication.go",
"blob": "fa6689f289734fa00379b6dbc9171fae50fcfa3b",
"sha256": "10e19a7729b8b27125bd8de6a94f0373df9db09c401b7b1294b65a796ba9f985",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/rdmapp/knowledge_publication.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/knowledge_publication.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/rdmapp/runtime.go",
"blob": "ae9af0048d1f760189a8e0f4c5fa1a96f528e435",
"sha256": "b6891677477e0bfe596c7cf2ce074497bd316037145d116745b66e79edb29fee",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/rdmapp/runtime.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/runtime.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/rdmapp/structure.go",
"blob": "57a28e963c16eda7727e3bb5e94986b0e46b0f3f",
"sha256": "116a25bf5e76f940f54ba67b87b855c5953b944a4ca4f088953766a35563fa86",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/rdmapp/structure.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/structure.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/rdmapp/templates/registry.yaml",
"blob": "fada623997e4a23a695445332a69175a15df566b",
"sha256": "094da101f08ce686c92475d2f03090596d0b203ce61ac24cb7438a0bf0485ab0",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/rdmapp/templates/registry.yaml",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/templates/registry.yaml"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/rdmapp/templates_gen.go",
"blob": "5b4d71f968a40a3114c2331fc3d6c876b97c7ec0",
"sha256": "8d4a68a31b69ab1834e66acc583211614d8177d23e1844bd4aa61c98ff57547c",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/rdmapp/templates_gen.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/templates_gen.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "plugins/rdm/plugin.go",
"blob": "41f927e96d9c48bf61cdb792dae497a5956e20e6",
"sha256": "25382894886fef7e9015d254fc416766d9cd7ce355671c088d2c34b0870a2eb8",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/plugins/rdm/plugin.go",
"sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/plugins/rdm/plugin.go"
}
]
}
@@ -0,0 +1,422 @@
{
"source": "SELF",
"checkedAt": "2026-10-14T10:39:40.639912+08:00",
"repos": [
{
"repo": "Agent-System-Dev",
"main": "f00165e8d71e4dc8ba0ceb7dc50c1a8a3deb6d60",
"openPulls": [
{
"number": 537,
"title": "[WIP] Replace submodule coupling with versioned dependencies and source workspaces",
"head": "12d875c615cdd8394b9b8bdb586bbca4c02b4241",
"branch": "feature/dependency-workspace",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/537"
},
{
"number": 512,
"title": "[WIP] Deliver progressive U2/U3 work with evidence-backed judgments",
"head": "a74318ab4b7d4f6fadd06675f3d1893361df722f",
"branch": "feature/fast-slow-u2-u3-plan",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/512"
},
{
"number": 488,
"title": "Pin the audit overview export",
"head": "334d2e2375095f3b4160ab232296f9c92065c565",
"branch": "feature/rdm-audit-export-entry",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/488"
},
{
"number": 486,
"title": "Pin account transactions and note deprecated credential flags",
"head": "5156d66302b3dcabd0a2306b1857d12ea4ec6a08",
"branch": "feature/u7-account-tx-audit",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/486"
},
{
"number": 482,
"title": "Pin the SQLite activity guard and document its refusals",
"head": "d5e8d6ab7a368f08b29e968b6f65f8898f2b28f5",
"branch": "feature/u8-sqlite-instance-guard",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/482"
},
{
"number": 471,
"title": "Close merged task cards (feature/card-close-20261012-123313Z)",
"head": "f0e8a87b8e2dca989637d3b136faf2f0bc3ddd4b",
"branch": "feature/card-close-20261012-123313Z",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/471"
}
]
},
{
"repo": "Agent-System-RDM",
"main": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"openPulls": [
{
"number": 363,
"title": "[WIP] Build RDM from versioned dependencies and a fixed product composer",
"head": "842a864d140dd4371989c2491b132973b48d728d",
"branch": "feature/versioned-dependencies",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/363"
},
{
"number": 307,
"title": "Pin the audit overview export frontend",
"head": "8ae52a6d9a4d8b60e875f9c56862f34dffed7705",
"branch": "feature/rdm-pin-frontend-export",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/307"
},
{
"number": 301,
"title": "Bind audit exports to the captured watermark",
"head": "6252f62524ef34360fdcdf8844d7e729378ffbfb",
"branch": "feature/rdm-u5-export-completion",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/301"
}
]
},
{
"repo": "Agent-System-Backend",
"main": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"openPulls": [
{
"number": 196,
"title": "[WIP] Build the Backend from versioned Go libraries and fixed frontend composition",
"head": "fffd5790cfab317fadafb40fa55a11bab6e9a847",
"branch": "feature/versioned-dependencies",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/196"
},
{
"number": 193,
"title": "[WIP] Verify source-backed stage judgments before publication",
"head": "5f834544b0b808cb16214a36725f2ae3cb90bfd4",
"branch": "feature/fast-slow-u2-u3",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/193"
},
{
"number": 185,
"title": "Commit account changes and audits in one transaction",
"head": "9754531cc98393cb8a936d0e25a7526dfabbe2c4",
"branch": "feature/u7-account-tx-audit",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/185"
},
{
"number": 183,
"title": "Refuse a second SQLite service before migration",
"head": "167609b3db6ef850c31eee71421c650f849a009c",
"branch": "feature/u8-sqlite-instance-guard",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/183"
}
]
},
{
"repo": "Agent-System-Frontend",
"main": "eb2d6d32f9323094d568bc9d80b4e5ed4f0af25b",
"openPulls": [
{
"number": 84,
"title": "[WIP] Build Frontend from versioned UI and contract packages",
"head": "5467517e1831e7ca8b58bb5df52494a3a2c9d468",
"branch": "feature/versioned-dependencies",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/84"
},
{
"number": 79,
"title": "[WIP] Preserve reading and show pending stage findings",
"head": "006c81567546deb1cbd95abbb7ca6a36f99241b2",
"branch": "feature/fast-slow-u2-u3",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/79"
},
{
"number": 73,
"title": "Add audit overview export without widening the readiness gate",
"head": "d9bb780384b16f661d71a5e6ad288a77426d9d98",
"branch": "feature/rdm-audit-export-entry",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/73"
}
]
},
{
"repo": "Agent-System-Documents",
"main": "7bd4e17827d4c7c88647bf3c9199c495b60cb107",
"openPulls": [
{
"number": 100,
"title": "[WIP] Record approved version-dependency and active-branch transition requirements",
"head": "1de7d17110efaa5ed2ed30a44d415f28987f89f3",
"branch": "feature/dependency-workspace-plan",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/100"
},
{
"number": 95,
"title": "[WIP] Document U3 r0.4 recovery design and plan",
"head": "276f885e7301bd39ae2d464c7469a37fe10ebf22",
"branch": "feature/fast-slow-u2-u3-plan",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/95"
}
]
},
{
"repo": "Agent-System-UI",
"main": "2c4322ef56df64ad72f65907d25b048a74bb5ffc",
"openPulls": [
{
"number": 54,
"title": "[WIP] Consume UI as a fixed package and verify packed consumers with cold caches",
"head": "63d289e6bc15b701356cfe2d5b8740210fac0dcc",
"branch": "feature/versioned-dependencies",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-UI/pulls/54"
},
{
"number": 51,
"title": "[WIP] Separate source records, judgments, and pending questions",
"head": "ac5b617e9e7ee6b9417b36c66d7c6e3b58ecbb42",
"branch": "feature/fast-slow-u2-u3",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-UI/pulls/51"
}
]
}
],
"files": [
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/domain/doctree.go",
"sha256": "9d0d9d72b252de0011be863ab50fd976f54bcd239b27d42ab3f3cc7b94727285",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/Agent-System-RDM/internal/domain/doctree.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/domain/labels.go",
"sha256": "2c796df8c0ace2d8044a83d4115c4f5956d71d9049c87b7fbe9a06e6fdae944c",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/Agent-System-RDM/internal/domain/labels.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/domain/eventlog.go",
"sha256": "3450726fc9c0dc4a3fea6b5225fff081d5d56ccdf151ce8a1b1a8fbc57333e8c",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/Agent-System-RDM/internal/domain/eventlog.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/rdmapp/runtime.go",
"sha256": "b6891677477e0bfe596c7cf2ce074497bd316037145d116745b66e79edb29fee",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/Agent-System-RDM/internal/rdmapp/runtime.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/rdmapp/tx.go",
"sha256": "94892e4b85bf395c2f5059b26c9c694f202c4d1898af6c57bdd69b2d020b05f5",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/Agent-System-RDM/internal/rdmapp/tx.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/rdmapp/inspection.go",
"sha256": "27368362233f8ff8b0c3e2d7c78a12162e5d12dc2545347b1270521182a2651e",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/Agent-System-RDM/internal/rdmapp/inspection.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/rdmapp/inspection_visibility.go",
"sha256": "20e298145dbed6949caf8ee3510115b6916f9685c8ab21841f09dc987832e7e9",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/Agent-System-RDM/internal/rdmapp/inspection_visibility.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/rdmapp/compose.go",
"sha256": "b2da219785cbf44ee53d1408e56628f44619c8dd93fb4415f2daa9013b591349",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/Agent-System-RDM/internal/rdmapp/compose.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/rdmapp/knowledge_publication.go",
"sha256": "10e19a7729b8b27125bd8de6a94f0373df9db09c401b7b1294b65a796ba9f985",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/Agent-System-RDM/internal/rdmapp/knowledge_publication.go"
},
{
"repo": "Agent-System-RDM",
"ref": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"path": "internal/rdmapp/templates.go",
"sha256": "3defc58f0e20dc15d8cee9d846da0d998ca3caf659af2cca2603b6d8f1741419",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/Agent-System-RDM/internal/rdmapp/templates.go"
},
{
"repo": "Agent-System-Backend",
"ref": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"path": "pkg/extension/extension.go",
"sha256": "57e00f6e5d21e28c4bfddf8b2fe3929e70826581d3feb94d557f1c9e2830ed42",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/Agent-System-Backend/pkg/extension/extension.go"
},
{
"repo": "Agent-System-Backend",
"ref": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"path": "pkg/extension/host.go",
"sha256": "4ad991e1a63c2051c96ff50ae55bf346ebb16aa56e2fef5f408d8fd03bc61f2d",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/Agent-System-Backend/pkg/extension/host.go"
},
{
"repo": "Agent-System-Backend",
"ref": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"path": "internal/runtime/llm.go",
"sha256": "5ae366d8c2c01e2b79fb6ff9d3f78147b82dce9dccee163d8cc880f5d3caa8d1",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/Agent-System-Backend/internal/runtime/llm.go"
},
{
"repo": "Agent-System-Backend",
"ref": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"path": "internal/ctxasm/ctxasm.go",
"sha256": "f5e7350628d1289c8f024dff5d21db04f733366a98100d31258f3e49b77ff933",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/Agent-System-Backend/internal/ctxasm/ctxasm.go"
},
{
"repo": "Agent-System-Backend",
"ref": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"path": "internal/store/audit.go",
"sha256": "54a7c6ab8315f3c0b3f0ec97ab857925a7a745453a2a41fb28051e54423ecf9a",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/Agent-System-Backend/internal/store/audit.go"
},
{
"repo": "Agent-System-Frontend",
"ref": "eb2d6d32f9323094d568bc9d80b4e5ed4f0af25b",
"path": "src/components/RdmAuditWorkspace.tsx",
"sha256": "ac406be59baab7eeb859dba49636aa5af579dbcf7aadbf1929a0aa346a56d1d6",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/Agent-System-Frontend/src/components/RdmAuditWorkspace.tsx"
}
],
"priorPRs": [
{
"repo": "Agent-System-Backend",
"number": 193,
"head": "5f834544b0b808cb16214a36725f2ae3cb90bfd4",
"state": "open",
"merged": false,
"mergeCommit": null,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/193"
},
{
"repo": "Agent-System-Dev",
"number": 488,
"head": "334d2e2375095f3b4160ab232296f9c92065c565",
"state": "open",
"merged": false,
"mergeCommit": null,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/488"
},
{
"repo": "Agent-System-Dev",
"number": 489,
"head": "5e6bf4aa0546d68fb3f872158f22b2791c301a60",
"state": "closed",
"merged": true,
"mergeCommit": "f00165e8d71e4dc8ba0ceb7dc50c1a8a3deb6d60",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/489"
},
{
"repo": "Agent-System-Dev",
"number": 512,
"head": "a74318ab4b7d4f6fadd06675f3d1893361df722f",
"state": "open",
"merged": false,
"mergeCommit": null,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/512"
},
{
"repo": "Agent-System-Documents",
"number": 89,
"head": "10b442169ce0964a19e504dfc07395507b37db05",
"state": "closed",
"merged": true,
"mergeCommit": "7bd4e17827d4c7c88647bf3c9199c495b60cb107",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/89"
},
{
"repo": "Agent-System-Documents",
"number": 95,
"head": "276f885e7301bd39ae2d464c7469a37fe10ebf22",
"state": "open",
"merged": false,
"mergeCommit": null,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/95"
},
{
"repo": "Agent-System-Frontend",
"number": 73,
"head": "d9bb780384b16f661d71a5e6ad288a77426d9d98",
"state": "open",
"merged": false,
"mergeCommit": null,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/73"
},
{
"repo": "Agent-System-Frontend",
"number": 79,
"head": "006c81567546deb1cbd95abbb7ca6a36f99241b2",
"state": "open",
"merged": false,
"mergeCommit": null,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/79"
},
{
"repo": "Agent-System-RDM",
"number": 301,
"head": "6252f62524ef34360fdcdf8844d7e729378ffbfb",
"state": "open",
"merged": false,
"mergeCommit": null,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/301"
},
{
"repo": "Agent-System-RDM",
"number": 307,
"head": "8ae52a6d9a4d8b60e875f9c56862f34dffed7705",
"state": "open",
"merged": false,
"mergeCommit": null,
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/307"
}
],
"wip": [
{
"worktree": "/home/weichen/projects/Agent-System-RDM-wt-feature-dhf-template-assets",
"head": "a16aaca19bf8eeef076c06f4471c4f5387565c85",
"path": "internal/domain/template_asset.go",
"sha256": "c8f39cbca1236cfd813b751c5af123d771c06f1941124e37739aa1ba8804168b",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/wip/projects/Agent-System-RDM-wt-feature-dhf-template-assets/internal/domain/template_asset.go",
"status": "unmerged local candidate; task narrative not proof of acceptance"
},
{
"worktree": "/home/weichen/projects/Agent-System-RDM-wt-feature-dhf-template-assets",
"head": "a16aaca19bf8eeef076c06f4471c4f5387565c85",
"path": "internal/rdmapp/dhf_assets.go",
"sha256": "b7e9c88039328281afcd800fdd27537c6ad7ac1e73c7afd9f685b2fac93673a6",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/wip/projects/Agent-System-RDM-wt-feature-dhf-template-assets/internal/rdmapp/dhf_assets.go",
"status": "unmerged local candidate; task narrative not proof of acceptance"
},
{
"worktree": "/home/weichen/projects/Agent-System-RDM-wt-feature-dhf-template-assets",
"head": "a16aaca19bf8eeef076c06f4471c4f5387565c85",
"path": ".task/feature-dhf-template-assets.md",
"sha256": "6984cf670c25dd53f88467d1966c0617e17995e15472d42ff82eb61bc44e2f2f",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/wip/projects/Agent-System-RDM-wt-feature-dhf-template-assets/.task/feature-dhf-template-assets.md",
"status": "unmerged local candidate; task narrative not proof of acceptance"
},
{
"worktree": "/home/weichen/projects/Agent-System-Dev-wt-feature-dhf-template-pipeline-plan/modules/documents",
"head": "8e9587ca1d63dca3867e8de131d5761a8abe9a2f",
"path": "docs/proposals/2026-10-14-dhf-template-generation-plan.md",
"sha256": "f99e1424a9bb86f68ad6de91657102a36004c61fb0f36c8427e913d9e0cf9643",
"localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage4-sources/wip/modules/documents/docs/proposals/2026-10-14-dhf-template-generation-plan.md",
"status": "unmerged local candidate; task narrative not proof of acceptance"
}
]
}
@@ -0,0 +1,276 @@
{
"source": "SELF read-only Gitea and worktree checks",
"checkedAt": "2026-10-14T11:15:04.729322+08:00",
"repos": [
{
"repo": "Agent-System-Dev",
"main": "f00165e8d71e4dc8ba0ceb7dc50c1a8a3deb6d60",
"openPulls": [
{
"number": 537,
"title": "[WIP] Replace submodule coupling with versioned dependencies and source workspaces",
"head": "12d875c615cdd8394b9b8bdb586bbca4c02b4241",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/537"
},
{
"number": 512,
"title": "[WIP] Deliver progressive U2/U3 work with evidence-backed judgments",
"head": "a74318ab4b7d4f6fadd06675f3d1893361df722f",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/512"
},
{
"number": 488,
"title": "Pin the audit overview export",
"head": "334d2e2375095f3b4160ab232296f9c92065c565",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/488"
},
{
"number": 486,
"title": "Pin account transactions and note deprecated credential flags",
"head": "5156d66302b3dcabd0a2306b1857d12ea4ec6a08",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/486"
},
{
"number": 482,
"title": "Pin the SQLite activity guard and document its refusals",
"head": "d5e8d6ab7a368f08b29e968b6f65f8898f2b28f5",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/482"
},
{
"number": 471,
"title": "Close merged task cards (feature/card-close-20261012-123313Z)",
"head": "f0e8a87b8e2dca989637d3b136faf2f0bc3ddd4b",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/471"
}
]
},
{
"repo": "Agent-System-Documents",
"main": "7bd4e17827d4c7c88647bf3c9199c495b60cb107",
"openPulls": [
{
"number": 100,
"title": "[WIP] Record approved version-dependency and active-branch transition requirements",
"head": "1de7d17110efaa5ed2ed30a44d415f28987f89f3",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/100"
},
{
"number": 95,
"title": "[WIP] Document U3 r0.4 recovery design and plan",
"head": "276f885e7301bd39ae2d464c7469a37fe10ebf22",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/95"
}
]
},
{
"repo": "Agent-System-RDM",
"main": "6fcb256205c2384abed35d3b6ab96ca7216e9297",
"openPulls": [
{
"number": 363,
"title": "[WIP] Build RDM from versioned dependencies and a fixed product composer",
"head": "2b37fb26bbb023bd0118ba52e590daaa9dc8b478",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/363"
},
{
"number": 307,
"title": "Pin the audit overview export frontend",
"head": "8ae52a6d9a4d8b60e875f9c56862f34dffed7705",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/307"
},
{
"number": 301,
"title": "Bind audit exports to the captured watermark",
"head": "bd973e1e8de639d6fafee92fbfe349bc22a57c9a",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/301"
}
]
},
{
"repo": "Agent-System-Backend",
"main": "5d5fc9891c0eb8994545ccb8b740535d9b99fb0e",
"openPulls": [
{
"number": 196,
"title": "[WIP] Build the Backend from versioned Go libraries and fixed frontend composition",
"head": "fffd5790cfab317fadafb40fa55a11bab6e9a847",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/196"
},
{
"number": 193,
"title": "[WIP] Verify source-backed stage judgments before publication",
"head": "efed68ca2c8fbf148a2c40d61906612a9cc006f1",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/193"
},
{
"number": 185,
"title": "Commit account changes and audits in one transaction",
"head": "9754531cc98393cb8a936d0e25a7526dfabbe2c4",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/185"
},
{
"number": 183,
"title": "Refuse a second SQLite service before migration",
"head": "167609b3db6ef850c31eee71421c650f849a009c",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/183"
}
]
},
{
"repo": "Agent-System-Frontend",
"main": "5313cfad4e633d0909ed40dcdfa28a11bc1902c0",
"openPulls": [
{
"number": 84,
"title": "[WIP] Build Frontend from versioned UI and contract packages",
"head": "5467517e1831e7ca8b58bb5df52494a3a2c9d468",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/84"
},
{
"number": 79,
"title": "[WIP] Preserve reading and show pending stage findings",
"head": "006c81567546deb1cbd95abbb7ca6a36f99241b2",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/79"
}
]
},
{
"repo": "Agent-System-UI",
"main": "2c4322ef56df64ad72f65907d25b048a74bb5ffc",
"openPulls": [
{
"number": 54,
"title": "[WIP] Consume UI as a fixed package and verify packed consumers with cold caches",
"head": "63d289e6bc15b701356cfe2d5b8740210fac0dcc",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-UI/pulls/54"
},
{
"number": 51,
"title": "[WIP] Separate source records, judgments, and pending questions",
"head": "ac5b617e9e7ee6b9417b36c66d7c6e3b58ecbb42",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-UI/pulls/51"
}
]
}
],
"trackedPRs": [
{
"repo": "Agent-System-Backend",
"number": 193,
"state": "open",
"merged": false,
"head": "efed68ca2c8fbf148a2c40d61906612a9cc006f1",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/193"
},
{
"repo": "Agent-System-Dev",
"number": 488,
"state": "open",
"merged": false,
"head": "334d2e2375095f3b4160ab232296f9c92065c565",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/488"
},
{
"repo": "Agent-System-Dev",
"number": 489,
"state": "closed",
"merged": true,
"head": "5e6bf4aa0546d68fb3f872158f22b2791c301a60",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/489"
},
{
"repo": "Agent-System-Dev",
"number": 512,
"state": "open",
"merged": false,
"head": "a74318ab4b7d4f6fadd06675f3d1893361df722f",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/512"
},
{
"repo": "Agent-System-Documents",
"number": 89,
"state": "closed",
"merged": true,
"head": "10b442169ce0964a19e504dfc07395507b37db05",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/89"
},
{
"repo": "Agent-System-Documents",
"number": 95,
"state": "open",
"merged": false,
"head": "276f885e7301bd39ae2d464c7469a37fe10ebf22",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/95"
},
{
"repo": "Agent-System-Frontend",
"number": 73,
"state": "closed",
"merged": true,
"head": "4e1eb39035e785810bfca02751cf29572c388768",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/73"
},
{
"repo": "Agent-System-Frontend",
"number": 79,
"state": "open",
"merged": false,
"head": "006c81567546deb1cbd95abbb7ca6a36f99241b2",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/79"
},
{
"repo": "Agent-System-RDM",
"number": 301,
"state": "open",
"merged": false,
"head": "bd973e1e8de639d6fafee92fbfe349bc22a57c9a",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/301"
},
{
"repo": "Agent-System-RDM",
"number": 307,
"state": "open",
"merged": false,
"head": "8ae52a6d9a4d8b60e875f9c56862f34dffed7705",
"url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/307"
}
],
"dhfWorktree": {
"path": "/home/weichen/projects/Agent-System-RDM-wt-feature-dhf-template-assets",
"head": "773676162c9e9492788f19ea344a6a961dcbf251",
"status": [
" M .task/feature-dhf-template-assets.md",
" M internal/rdmapp/dhf_catalog_test.go",
" M internal/rdmapp/templates/dhf/catalog.json",
"?? docs/records/dhf/e1-r1-result.json",
"?? docs/records/dhf/pilot-project-proposal-review.md"
],
"files": [
{
"path": "docs/records/dhf/u1-progress.md",
"sha256": "9b44c4e2b608705014825ba4b7c123a9beca8dca657994bd4db68e93526217f7",
"bytes": 3782
},
{
"path": "docs/records/dhf/e1-r1-result.json",
"sha256": "596bd7ed376824239fd441ae8879f465133a58bae76bdabd117e96ee8b324201",
"bytes": 3695
},
{
"path": "docs/records/dhf/pilot-project-proposal-review.md",
"sha256": "fdefeb1b8e43b269873d9241a3ce21737e919be983eae0bdcaec33e6f8f3eea7",
"bytes": 33241
},
{
"path": "internal/domain/template_asset.go",
"sha256": "c8f39cbca1236cfd813b751c5af123d771c06f1941124e37739aa1ba8804168b",
"bytes": 8054
},
{
"path": "internal/rdmapp/dhf_assets.go",
"sha256": "b7e9c88039328281afcd800fdd27537c6ad7ac1e73c7afd9f685b2fac93673a6",
"bytes": 30551
}
]
}
}