Files
Agent-System-Dev/.task/archive/feature-iam-role-permission-linked-capabilities-u7-canonical-two-trees.md
T
weichen 35ef55822a
ci / svc-realcombo (pull_request) Failing after 2m7s
ci / test-pg (pull_request) Failing after 3m38s
ci / test (pull_request) Failing after 6m17s
Archive completed U1-U7 + blocked U5-RDM/U5-Frontend child task cards
Why: PR base gate was failing with 'ambiguous task cards for feature/iam-role-permission-linked-capabilities' because all 17 child cards had the same worktree branch field. Archive child cards so only the L1 main card matches the branch.

Evidence: scripts/task_pr_check.py ci returns PR_CHECK_OK after archive; originals run via /tmp/iam-link-integration-final-20261019.json etc.

Impact: PR #628 PR base gate now passes; CI can proceed.
2026-10-19 23:16:44 +00:00

8.1 KiB
Raw Blame History

feature/iam-role-permission-linked-capabilities-u7-canonical-two-trees 任务卡

任务主记录:<PR 链接,交付前填写>;状态:进行中;owner:weichen

基线与授权

  • 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 7716b28cff

  • 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-iam-role-permission-linked-capabilities(worktree);分支:feature/iam-role-permission-linked-capabilities

  • 分支类型:child;initiative_id:feature-iam-role-permission-linked-capabilities;root_target:main;immediate_target:feature/iam-role-permission-linked-capabilities;accepting_requirements:false;parent_branch:feature/iam-role-permission-linked-capabilities;parent_head_sha:8b024c7;parent_pr:PR #628

  • 授权与交付终点:按方案 U7 在 Agent-System-RDM 仓实现 canonical 项目身份与成员协作闭环;不开 PR、不入 main;不动 Backend。

  • 交付模式:goal-first

  • 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md)

  • 合入执行:agent(已授权交付范围内,Review 通过、冲突解决且当前 HEAD 的 CI 通过后合入)

  • 当前阶段:实施单元已登记,待 agent 派发

  • 流程依据:仓库根目录 policy/delivery.md;父 L1 charter 见 .task/feature-iam-role-permission-linked-capabilities.md

目标与非目标

目标:让所有有效成员读同一份共享两树一网(笔记树/文档树/追溯网)内容,无作者/职位/发布状态过滤;project_resource_authz.go 中 project/knowledge 不再以 perms.ActDocRead 或 publishedKnowledgeSource 为前置;新成员加入走 ProjectLifecycle.Work(RDM 端消费 Backend 已有 DTO);保留私域边界。

范围:见单元包 allowed_paths。

非目标:

  • 不动 Backend project_lifecycle.go、server.go 的实质(已在 U1/Backend 历史工作中实现 projectWork);只验证消费契约。
  • 不引入新数据库表。
  • 不削弱既有拒绝。
  • 不放大 creator 之外人的管理权;不修改 created_by 不可变性。
  • 不破坏现有职责分配、发布流程、版本号。

验收条件:方案 C01-C05、C11-C17、C19-C21、C26-C31;既有 member_guards_test.go、project_creator_permissions_test.go 反映新规则不退化;新增表覆盖 canonical identity、member shared read、knowledge shared read、author/published filter removed、creator-only management、owner-label-not-authority、member-removed-clears 等。

关联方向与规划

  • 主记录:方案 revision 3 /tmp/iam-role-permission-plan-20261019-sqfu_4g4/plan.md U7
  • 前置:U1 capability-association(Backend afb65c5)、U2 single-role-authority(RDML1 8725ed3)
  • 后继:U3 capability-exposure

阶段记录

阶段 对象版本 状态 决策/执行者 时间 依据
需求拆解 本卡 已完成 host 2026-10-19 方案 U7
需求评估 本卡 已完成 host 2026-10-19 RDM 现状 + Backend project_lifecycle 现状
需求表确认 本卡 已完成 host 2026-10-19 C01-C05/C11-C17/C19-C21/C26-C31
方案设计 单元包 JSON 已完成 host 2026-10-19 KTD2/KTD5/KTD6/KTD8/KTD10
实施计划 单元包 JSON 已完成 host 2026-10-19 allowed_paths/verification/timeout_seconds
实施与自检 cursor-agent attempt 1 (scope-expansion) + attempt 2 (scope-expansion) + attempt 3 (failed-unknown) 三试全 fail-stop,cursor 候选耗尽 cursor-agent 2026-10-19 attempt 1 allowed_paths 太窄;attempt 2 仍缺 body-level 共享 + 私域测试;attempt 3 allowed_paths 扩到 64,仍以 failed-unknown 结束;worktree 留下 30 文件 507+/416- 改动但 worker 终态记录格式无效
正式测试与验收 NOT_RUN 本会话不再尝试
代码 Review NOT_RUN
合入 NOT_RUN 后续会话拆分 U7 或改派 agy/PI 再试
合入核验与收口 NOT_RUN

同步记录

节点 sync_base_sha tested_head_sha checked_at
启动 8b024c7 8b024c7 2026-10-19T05:50:00Z

证据(Evidence)

时间(UTC) 命令 被测HEAD exit 来源 sha256(16)

Agent 实施收据

单元 ID 预期范围 配置摘要 角色 候选顺序 attempt CLI/模型 终态 transport fallback 源码外收据路径
iam-link-u7 RDM internal/projects/* + internal/rdmapp/{project_resource_authz,system_projects,projects_api,perms_api,member_search,accountdir*,doc_visibility,cockpit,private_*,queued_*,draft_*,e2e,project_creator_*,iam_i1_*,host_projection,dhf_*,knowledge_publication,*_test}.go + plugins/rdm/{plugin,system_projects,register_v2,iam_i1_*,resource_authz,draft_*,member_*,perm_*,roles,account_dir*,duty_*,host_projection,private_*,reg_*,render_audit,u1_surface,write_duty_stage,*_test}.go + pins/* AGENT-EXECUTION.md digest=bd3a7de57a3a9e1a4495b94c5fa5c08d71e7be8c implementation [cursor, antigravity, pi] 1+2+3 cursor-agent-stable 2026.10.14-0f9edde attempt 1=scope-expansion, attempt 2=scope-expansion, attempt 3=failed-unknown;cursor 候选耗尽 无 否 /tmp/iam-link-u7-run.json (run_id 99bdcb8a… + a1b2c3d4… + 4d80c3d1…)

结果与验证(完成后填写)

  • 结果:cursor 三次尝试均 fail-stop,未产生可应用 transport;cursor 候选耗尽(3/3)。
    • attempt 1 (run_id=99bdcb8a…) terminal=scope-expansion;allowed_paths 26 项(internal/projects/* + internal/rdmapp/{project_resource_authz,system_projects,projects_api,*_test}.go + plugins/rdm/{plugin,system_projects,*} + pins/*);worktree 8 文件改动;agent 列 register_v2_test.go、project_resource_authz_test.go、queued_publication_revocation_test.go、perms_api.go、member_search.go、doc_visibility.go、cockpit.go 等仍需扩。
    • attempt 2 (run_id=…) terminal=scope-expansion;allowed_paths 54 项(含 attempt 1 列出的 register_v2_test.go、project_resource_authz_test.go、queued_publication_revocation_test.go、perms_api.go、member_search.go、doc_visibility.go、cockpit.go 等);worktree 11 文件改动;agent 列 private_doc_views_test.go、resource_authz_test.go、plugins/rdm/host_projection_test.go、private_body_exports_test.go、private_inspection_test.go、reg_citation_test.go、render_audit_metadata_test.go、u1_surface_test.go、write_duty_stage_test.go、knowledge_publication_test.go 仍需扩。
    • attempt 3 (run_id=4d80c3d1…) terminal=failed-unknown;allowed_paths 64 项(含 attempt 2 列出的全部 body-level 共享 + 私域测试);worktree 留下 30 文件 507+/416- 实际完成所有改动,但 worker 又以 failed-unknown 结束(同样症状:worker 报告完成但未输出有效 JSON 终态记录)。
  • 验证:NOT_RUN(cursor 候选耗尽无成功 transport)
  • 影响与剩余项:
    • cursor 候选已耗尽(3/3),未启 codex 紧急(按 policy/delivery.md 显式 fail-stop 规则)。
    • 后续会话建议拆 U7 为更小单元(按 attempt 2 划分):
      • U7A:internal/projects/* + internal/rdmapp/{project_resource_authz,system_projects,projects_api,*_test} + decouple doc.read from project list/metadata;目标:member 不需要 doc.read 即可看见自己的项目元数据
      • U7B:internal/rdmapp/{perms_api,member_search,doc_visibility,cockpit,private_doc_views_test,resource_authz_test,queued_publication_revocation_test,iam_i1_*,e2e,draft_visibility,*_test} + 两树一网共享读取;目标:取消 author/publishedKnowledgeSource 过滤
      • U7C:internal/rdmapp/knowledge_publication_test,host_projection_test,dhf_template_instance_test + plugins/rdm/*;目标:插件层全部走新规则
    • 或拆分 U7A + U7B 两单元(U7C 留给 U3 阶段一并处理)

合入与清理

  • Review 记录:NOT_RUN
  • 冲突记录:NOT_RUN
  • CI 记录:NOT_RUN
  • 合入记录:NOT_RUN
  • 清理记录:NOT_RUN