Files
Agent-System-Dev/.task/feature-project-access-lifecycle.md
T
weichen 2079239882
ci / svc-realcombo (pull_request) Successful in 3m14s
ci / test-pg (pull_request) Failing after 4m29s
ci / test (pull_request) Failing after 6m47s
Record U5 RDM delivery in the L1 registry
Why: the U5 template-catalog unit was delivered on the RDM working branch
0f97deb (inventory 414 files, 130 honest gaps, catalog 44 entries verified
covering all 41 physical sources, project selection wiring tested); the RDM
stacked branches await the RDM main delivery merge recorded as the next
cross-repo step.

Impact: task card only.

Refs: PR #634.
2026-10-20 11:57:30 +00:00

15 KiB
Raw Blame History

feature/project-access-lifecycle 任务卡

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

基线与授权

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

  • 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-project-access-lifecycle(worktree);分支:feature/project-access-lifecycle

  • 分支类型:standalone;root_target:main;immediate_target:main;accepting_requirements:false

  • 需求分流:verdict=NEW;selected_initiative=无;requirement_sha256=72ce129300a749b532d1d2806e247cdcd412bb19e927a50d5b16be827b398f5e;triage_receipt=/tmp/access-lifecycle-triage.json;receipt_sha256=399267dd5f0e1d3e1ba1bf1ccf52532b386535fef618d03985b46d36e8f6c800

  • 授权与交付终点:按计划 docs/superpowers/plans/2026-10-19-1440-feat-project-access-lifecycle-plan.md 实施 U1–U6:角色权限收窄为单一项目访问布尔(含 R13 门禁修正与旧数据兼容归一)、creator 管理权威、成员历史与只读移除、项目/成员工作状态、固定模板库、界面呈现。终点:L1 分支经组合验证与 CI 后合入 main;不含部署、生产数据迁移、发布/打标与线上权限改写(计划 Verification Contract 明确排除)。

  • 交付模式:goal-first(目标、范围和交付终点一次确认;范围内连续推进)

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

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

  • 人工决策点:U3 实施前须确认「移除成员后的历史可见范围」(计划 Deferred Planning Questions,当前按 KTD6 保守默认);其余按既有边界

  • 流程依据:仓库根目录 policy/delivery.md(归档后仍按仓库根目录定位)

  • 交付模式:goal-first(目标、范围和交付终点一次确认;范围内连续推进)

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

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

  • 人工决策点:仅限目标/范围/验收变更、重大取舍、高后果操作或无法自动判定的业务验收

  • 当前阶段:需求拆解;当前增量:I1(待定义)

  • 流程依据:仓库根目录 policy/delivery.md(归档后仍按仓库根目录定位)

章程(charter)

用途与目标:按计划实现「项目访问与生命周期管理」——角色配置收窄为单一「项目访问」布尔(旧 allowed/capAllowed 按原有效结果 allowed&&capAllowed 兼容归一,写时双写两列);角色管理者凭 system.roles.manage 即可配置该权限(R13,系统授权与平台上限仍由 system.permissions.manage 保护);系统管理员不再默认绕过项目创建检查;项目管理 = 有效项目访问 + 精确 creator 身份;成员/项目工作状态(active/suspended/removed、active/closed)可逆且在每个执行边界重验;固定模板库全量入册、按需实例化;不含文档职责分配。

接纳范围:计划 R1–R13;单元 U1–U6(U1 角色收窄+门禁修正;U2 creator 管理权威;U3 成员历史与只读移除;U4 工作状态;U5 模板库;U6 界面呈现);AE1–AE11。

非目标:文档职责分配的新增/接线;归档/恢复行为变更;项目转移创建者;项目删除;全局同名唯一性变更;部署、生产迁移、发布/打标、线上权限改写;私人内容对系统管理员开放。

分级测试策略:单元→L2:worker 自检 + host 最小直接检查(make test-affected)+ 全新会话独立 Review;轻量 CI。L1→main:task-sync + 完整组合验证 + 完整 CI(test/test-pg/svc-realcombo)+ 三段证据 + 独立 Review。

验收条件:计划 Success Criteria 全部成立;AE1–AE11 在真实组合通过;Definition of Done 逐项满足(不含部署项)。

追加领域规则:

  • 角色授权判定只消费规范化后的项目访问布尔;旧 system/user 行对角色授权无效且不得出现在角色能力中。
  • system.grants 与平台上限写入门禁保持 system.permissions.manage,不得因 R13 放宽。
  • 创建者身份只能来自服务端认证与不可变 createdBy;任何 owner 标签、调用方字段、RDM 域管理员、系统管理员都不得绕过。
  • 成员移除/停用与项目关闭在每个副作用边界重验;移除历史保留且可审计。

生命周期:建立即开本 PR(base main,[WIP])作分流发现;子任务按登记推进;最终一次性合入 main 后归档回收。

关联方向与规划:主记录 docs/superpowers/plans/2026-10-19-1440-feat-project-access-lifecycle-plan.md(本分支提交);关联 #628(其角色模型由本计划取代,衔接由 L1 owner 处理)。

子任务登记

子任务分支 必需 状态 PR 单元 范围摘要
feature/project-access-lifecycle-u1-role-project-access 是 已登记,待派发 — U1 Backend catalog/service/role_policy/migrate/roles.go + Frontend rolePermissions.ts/RolePermissionsPanel.tsx:单一项目访问布尔、R13 门禁拆分、旧数据归一;R1/R2/R9/R11/R13
feature/project-access-lifecycle-u2-creator-management 是 待启动(依赖 U1) — U2 RDM projects_api/system_projects/perms:有效项目访问+精确 creator 的管理权威
feature/project-access-lifecycle-u3-member-history 是 待启动(依赖 U2;实施前须确认历史可见范围) — U3 RDM members/projects_api/system_projects/private_doc_views + Backend server.go:移除/停用即时停工、只读历史
feature/project-access-lifecycle-u4-work-states 是 待启动(依赖 U2/U3) — U4 项目 active/closed 与成员 active/suspended 状态、迁移与全边界重验
feature/project-access-lifecycle-u5-template-catalog 是 已交付待合入(RDM 分支 @ 0f97deb 已推送:inventory.json 414 文件全量盘点、130 项差距诚实列出、catalog 44 条已核验覆盖、项目选用接线测试;rdmapp 全量绿) — U5 RDM 模板清单刷新(44 项 DHF+)、目录连接项目浏览/选择、来源/版本溯源
feature/project-access-lifecycle-u6-ui-presentation 是 待启动(依赖 U1–U5 合同) — U6 Frontend 角色/成员/项目/模板界面呈现与只读态

Agent 实施收据

路由与 fail-stop 规则见根目录 AGENT-EXECUTION.md 与 policy/delivery.md;每次尝试一行,原始日志留在源码外收据路径。

单元 ID 预期范围 配置摘要 角色 候选顺序 attempt CLI/模型 终态 transport fallback 源码外收据路径
待定义 — NOT_RUN NOT_RUN NOT_RUN NOT_RUN NOT_RUN NOT_RUN NOT_RUN NOT_RUN —

| pal-u6 Frontend | 项目工作状态控制(close/reopen/suspend/reactivate 命令消费)+ 模板浏览(rdm.docs.templates/instantiate)+ 状态只读呈现 | AGENT-EXECUTION digest | implementation | cursor(--model auto 经 Dev dm)→… | 1 | cursor(session not-observable) | success | Frontend 分支 581b25d(已推送) | never | /tmp/pal-u6-run.json |

关联方向与规划

  • 适用状态:待核对(无适用规划时说明原因)
  • 主记录路径/版本:待核对(路径按仓库根目录定位,归档后不变;只引用唯一正文)
  • 对应里程碑:待核对

需求分析

ID 描述 项目符合度及依据 优先级 验收条件 依赖 结论
R1 待填写 待评估 待定 待定义 待确认 待评审

方案与计划

  • 方案引用:待填写(含对象版本)
  • 实施计划引用:待填写(含增量与需求 ID)
  • 测试计划引用:待填写(含需求 ID 与验收条件)

阶段记录

阶段 对象版本 状态 决策/执行者 时间 依据
需求拆解 待定 待执行 — — —
需求评估 待定 待执行 — — —
需求表确认 待定 待执行 — — —
方案设计 待定 待执行 — — —
实施计划 待定 待执行 — — —
实施与自检 待定 待执行 — — —
正式测试与验收 待定 待执行 — — —
代码 Review 待定 待执行 — — —
合入 待定 待执行 — — —
合入核验与收口 待定 待执行 — — —

探索试验与迭代

增量/试验 假设 范围 判断和停止条件 授权/决策依据 结果 变更影响 需重审补测
待定义 — — — 待核对 NOT_RUN 待评估 待评估

同步记录

节点 sync_base_sha tested_head_sha checked_at
启动 3e70d76a20 3e70d76a20 2026-10-19T14:56:17Z

证据(Evidence)

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

组合合并事项(L1 集成期)

  • Backend 组合:本 L1 的 backend pin d3380de(基于 03646b5 线)与 Backend main 3f4b34a(#219 关联+解释)已分叉——L1 最终交付前需在 Backend 仓做一次组合合并(3f4b34a + d3380de 线),解决 U1 角色收窄与关联/解释工作的叠加,并以组合验证收口。
  • 前端组合:本 L1 frontend pin 2c19439 包含 main(dab1605)与 U1 前端,无分叉。
  • RDM:交付组合经 svc(RDM 分支 feature/project-access-lifecycle-u3-member-history @ 62c77ec,含 U2/U3a),后续 U4/U5 继续在其上堆叠。

交付调度

  • 调度状态:未入队;调度记录:无
  • entry_id:无;attempt_id:无;窗口执行者:无
  • 固定候选:无(base/head、组件与相关配置引用实际尝试)
  • 调度依据:policy/delivery.md#合入调度
  • 固定后证据:源码外 RECEIPT;实际结果后按授权原样导入和闭合

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

  • 结果:
  • 验证:<结论摘要 PASS/FAIL/SKIP/NOT_RUN 逐项;逐条证据由 make evidence 写入上方证据表>
  • 影响与剩余项:

规划进展与下一步

  • 本次推进/剩余:待核对(依据实际成果更新适用方案/规划)
  • 首选下一任务:待核对(无适用规划、已完成或受阻时如实说明,不虚构任务)
  • 推荐依据:待填写
  • 前置条件/待确认:待核对
  • 预期产物/验收条件:待定义
  • 重复任务核对:待核对(已有/在途任务、PR 与规划记录)
  • 启动授权:未授权(建议不自动启动新任务,仍须明确授权)

合入与清理

  • Review 记录:NOT_RUN(审阅智能体/平台身份、base/head、结论、问题闭合及重放依据)
  • 冲突记录:NOT_RUN(最新目标同步、冲突处置、组合兼容核验及复审/补测)
  • CI 记录:NOT_RUN(当前 HEAD 完整 SHA、全部必需检查、运行链接、执行身份及 GATE 结果)
  • 合入记录:NOT_RUN(交付授权范围、PR、被核验 HEAD、合入 SHA、目标分支及内容核验)
  • 清理记录:NOT_RUN(授权依据、写者退出确认、worktree/分支/任务卡处置)
{
  "summary_schema": 1,
  "source": "SELF",
  "timestamp": "2026-10-19T14:55:22.278761+00:00",
  "command": "make precheck",
  "exit_code": 0,
  "cwd": "/home/weichen/projects/Agent-System-Dev",
  "before_head": "3e70d76a20a6caf6f2edfd738a86f501c31064b6",
  "after_head": "3e70d76a20a6caf6f2edfd738a86f501c31064b6",
  "branch": "main",
  "target_branch": "main",
  "target_head": "3e70d76a20a6caf6f2edfd738a86f501c31064b6",
  "root_target": "main",
  "immediate_target": "main",
  "before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  "after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  "output_tail": [
    "make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev'",
    "[repo]   branch=main head=3e70d76a20",
    "[remote] origin/main=3e70d76a20 ahead=0 behind=0",
    "[tree]   clean submodules_drift=0 uninit=0",
    "[worktrees] linked=4",
    "[recycle] merged un-recycled branches: feature/layered-python-env",
    "[initiatives] local cards (not authoritative): none",
    "[hooks]   core.hooksPath=scripts/hooks(pre-commit/post-merge 实际接线)",
    "[facts]   policy/facts.md 6 条事实均在有效期内",
    "[required-reading] core/baseline.md, workflows/delivery.md §1, policy/delivery.md",
    "[R0] 3e70d76a20(完整:3e70d76a20a6caf6f2edfd738a86f501c31064b6)",
    "[worktree] before-sync: recursive component checks passed",
    "[verdict] READY — 保留本次 precheck receipt 后建任务工作区:PRECHECK_RECEIPT=/tmp/task-precheck.json make task-start NAME=feature/your-branch",
    "make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev'"
  ],
  "output_sha256": "d2baa6708f27afe1ed29f31d2f69bf866829477011cf2e0e12ebc4721dfa0ca4",
  "receipt_sha256": "8172707bdb0edab18ee7d04aefb24cceedfbf32480538e5cde7f78aa647c3aa0",
  "receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/8172707bdb0edab18ee7d04aefb24cceedfbf32480538e5cde7f78aa647c3aa0.json"
}

| 同步(记录前对象) | 2b7fdc39a1 | 7fe701c379 | 2026-10-19T16:33:44Z | | 同步(记录前对象) | f07a53d86a | d25b2f3287 | 2026-10-20T01:16:00Z |

{
  "summary_schema": 1,
  "source": "SELF",
  "timestamp": "2026-10-20T11:56:47.221717+00:00",
  "command": "sh -c 'cd modules/frontend && npx vitest run test/pal-u6-ui.test.ts test/rdm-management.test.ts test/design-guard.test.ts test/role-permissions-ui.test.ts 2>&1 | tail -1 && npx tsc -b && echo TSC_OK'",
  "exit_code": 0,
  "cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-project-access-lifecycle",
  "before_head": "93482789110f80b7bdfd587a7f88dc5fc09d923f",
  "after_head": "93482789110f80b7bdfd587a7f88dc5fc09d923f",
  "branch": "feature/project-access-lifecycle",
  "target_branch": "main",
  "target_head": "aa9f98d2e5b8ce36724f881752b0a95a353df987",
  "root_target": "main",
  "immediate_target": "main",
  "before_tracked_diff_sha256": "50c6322bb37ebbfb2900beb621fb17f0059076485f8e82c8b21590a40e562b10",
  "after_tracked_diff_sha256": "50c6322bb37ebbfb2900beb621fb17f0059076485f8e82c8b21590a40e562b10",
  "output_tail": [
    "",
    "TSC_OK"
  ],
  "output_sha256": "80606ea8f083ab10f6c81f1a2dceced6ba7715c4b1e06d3990489d1041c91463",
  "receipt_sha256": "60009b5124f35d49a8a256a8ff1c57e0452cf4029dbc49cee71e55171e5e3876",
  "receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/60009b5124f35d49a8a256a8ff1c57e0452cf4029dbc49cee71e55171e5e3876.json"
}