生命周期
- Asset
- ADP-PLN-FEAT-DOC-0044
- Feature
- work-item-lifecycle
- 领域
- plane-core
- 作用域
- application-level
- 文档状态
- draft
- 产品生命周期
- active
- 文档 Owner
- DOC
- 事实源
- canonical-docs
- 工程 Owner
- PLN
- Development Ready
- not-ready
- 更新
- 2026/10/14
FEATURE DEVELOPMENT PACKAGE
工程就绪状态
工程 Owner:PLN · 仓库:PLN
- 原子需求与验收
- 设计与工程合同
- 代码与仓库定位
- 里程碑与工作包
- 验证计划
- 无阻断决策
- Development Ready 已通过
- 验收标准已覆盖
- 正式测试已登记
- Fixture 与环境已定义
- 测试规格已物化到正式测试
- Verification Ready 已通过
- 实现修订可定位
- 发布证据已登记
- 兼容与迁移已定义
- Runbook 与回滚已定义
查看阻断项(5)
- Development Ready 缺少:原子需求与验收
- Development Ready 缺少:设计与工程合同
- Development Ready 缺少:代码与仓库定位
- Development Ready 缺少:里程碑与工作包
- Development Ready 缺少:验证计划
唯一进度
所有保留 Issue 类型使用原生 Issue.state,State.progress_role 提供状态语义。原生状态同时是业务进度和生命周期事实,不再是另一套 Task/Bug 状态的粗粒度投影。状态组继续负责 completed_at、取消和归档。
保留非 Epic 业务按钮、责任、证据、决定与审计。普通状态入口、看板、批量、导入和 API 使用相同服务端权限和证据规则,不能绕过人工验收。
完成、取消与归档
状态属于同一 Project 并满足适用 workflow;进入 completed 写 completed_at,离开按原生生命周期处理。已完成/取消 Issue 可按权限归档;unarchive 只恢复可见性,不自动重新开启执行。删除与归档不等价。
您的工作:当前事项与历史事项
“您的工作”的已分配、已创建、已订阅三个列表默认选择“未结束”,并提供可见的“未结束 / 已结束 / 全部”筛选。每个列表在本次使用中独立保留选择,尚未切换过的列表仍默认“未结束”。关系范围、生命周期范围与其他筛选条件同时生效,界面明确提示“其他筛选条件同时生效”;状态名称和责任流展示文案不参与生命周期判定。
| 筛选 | 原生生命周期范围 |
|---|---|
| 未结束(默认) | Issue.state.group 不属于 completed 或 cancelled。 |
| 已结束 | Issue.state.group 属于 completed 或 cancelled。 |
| 全部 | 不附加生命周期限制;保留列表原有访问权限和对象范围。 |
服务端先按用户可访问范围、所选关系和生命周期过滤,再分页、分组和计算数量;列表与数量使用同一筛选范围。切换筛选后从新范围的第一页加载,不能仅在当前页隐藏终态事项。
隐藏已结束事项只改变列表查询,不清空负责人或订阅关系、不自动归档、不删除 Issue。Issue 进入终态后退出默认列表;重新进入非终态后恢复显示。“全部”不授予额外访问权限,也不代替归档查询。
您的工作:按当前责任待办
顶部“活动”右侧提供“待执行 / 待验收 / 待测试”,沿用列表与看板、其他筛选、详情入口和原有项目访问权限。
| 标签 | 命中条件 |
|---|---|
| 待执行 | 当前有效执行责任人是该用户,原生 progress_role 为 not_started、ready、running 或 blocked;尚未建立交付责任时,沿用开始动作使用的 Issue assignees,限 not_started / ready。 |
| 待验收 | 当前有效专业验收责任人是该用户,原生 progress_role=professional_acceptance。 |
| 待测试 | 当前有效测试责任人是该用户,原生 progress_role=test。 |
三个待办均排除原生 completed/cancelled 状态组。生命周期与其他筛选仍同时生效,选择“已结束”时待办为空;“全部”不扩大待办的当前阶段范围。判断不依赖状态名称、颜色或历史决定。
未启动任务的待执行匹配只使用 deleted_at 为空的当前 IssueAssignee 关系,并要求负责人为有效 human User 且具备有效 Project membership。移除后的历史分配行不能命中待执行;历史分配和活动记录继续保留。已建立交付 workflow 的事项仍只按当前有效阶段责任匹配。
验收和测试责任人不需要同时是 Issue assignee、创建者或订阅者;服务端仍要求调用者具备有效项目访问权限。责任更换后只匹配有效的新责任人,历史责任不构成当前待办。未分配验收/测试责任人的工作项不归入任何人的相应待办。
服务端先过滤责任、原生状态、生命周期和其他条件,再分页、分组并计算数量;翻页保持同一责任范围。切换标签重载新范围。仅查询,不改变状态、责任、关系、证据或历史。
项目工作项:预设推进队列
项目工作项复用原列表、看板和已支持布局、排序、详情与业务分配入口。主栏为“未结束 / 待分配 / 待执行 / 执行中 / 待验收 / 待测试 / 已完成 / 更多”;更多提供已阻塞、待关闭、已取消、全部和待确认/分诊。窄屏主栏可滚动,更多入口保持可达。
| 预设 | 唯一判定事实 |
|---|---|
| 未结束(首次默认) | 原生 state.group 不属于 completed/cancelled,包含待确认/分诊。 |
| 待分配 | 当前适用执行、专业验收或测试阶段缺少有效责任人;不检查未来阶段。 |
| 待执行 | 原生 progress_role 为 not_started/ready;不包含 running/blocked。 |
| 执行中 / 待验收 / 待测试 / 已阻塞 | 原生 progress_role 分别为 running / professional_acceptance / test / blocked;未分配不隐藏阶段事项。 |
| 待关闭 | 适用 Bug 原生 close_review 且未进入终态;沿用关闭业务动作及权限。 |
| 已完成 / 已取消 | 仅原生 state.group=completed / cancelled;验收通过、测试通过或流程展示完成不等于已完成。 |
| 全部 | 不限制终态,仍保留访问、软删除、草稿与归档边界;归档继续使用独立入口。 |
| 待确认/分诊 | 原生 triage 状态组或当前有效 Intake 的 Pending/Snoozed 语义,不按名称猜测。 |
阶段队列排除原生终态及待确认/分诊;待确认/分诊保留在默认未结束、全部及专用入口。项目待执行与个人/部门待执行(包含 running/blocked)是不同产品范围,项目入口明确说明较窄口径。
“当前环节由我负责”使用最新 workflow 当前 attempt、当前阶段最新责任快照的有效成员集合;未启动执行沿用当前未删除 IssueAssignee,要求有效 human User 和有效 Project membership。失效、历史、软删除责任不算当前责任;验收/测试负责人不要求同时是工作项负责人、创建者或订阅者。待分配使用相同有效性口径。当前阶段与当前责任、工作项负责人默认可见;缺少有效当前责任明确显示未分配,已阻塞展示已有原因。
预设和“当前环节由我负责”叠加现有当前环节负责人、工作项负责人、类型及其他筛选。服务端从同一授权范围开始,应用其他筛选与快捷责任条件后,对每个预设按 Issue 去重计数,再应用选中预设、分组和分页。切换预设回到新范围第一页,后续翻页保留条件。待分配与阶段视图可以重叠,数量不得相加宣称总数。界面明确说明其他筛选同时生效。
上述查询不修改状态、责任、证据、历史或关系,不放宽原业务分配、验收和关闭权限,不新增状态机、自动派单、推进或通知。
跨类型终结动作
非 Epic 的强制完成和取消保留原强授权、必填原因、版本、幂等与审计。终结直接更新原生状态及生命周期后果,不补造专业、测试或回归决定,不以删除证据代替收敛。适用类型的未决验收按原有规则失效。部门审批已退役,不再拦截状态修改。
已终态或归档对象不返回终结动作。业务完成不等于 GitLab 已合并或环境已发布;每类结果需要独立证据。Symphony 不领取终态,迟到执行不能覆盖。
原生状态转换
服务端按当前原生状态和 progress_role 解析业务动作及唯一目标,不能根据名称、颜色、排序或任意同组状态猜测。不同人工验收环节要由原生状态区分,不回读旧类型状态或隐藏阶段进度。
动作使用 state_transition 及当前 Issue 版本;适用类型的 business revision 仅保护命令和证据。状态、证据、审计和幂等回执在同一事务提交。
Bug 修复与回归
Bug 的修复、专业验收、回归、打回和关闭按钮继续消费所需责任、证据及 workflow 权限。通过回归不是自动合并或发布授权;关闭必须满足适用业务门禁。进度迁移到原生状态,不再维护独立 Bug status 副本。
Bug 已完成适用验收流程但尚未执行关闭时,当前业务环节与责任摘要显示“待关闭”,继续出现在“未结束”范围。该文案从当前原生状态及适用业务动作派生,不建立第二套进度;执行关闭并进入原生终态后才归入“已结束”。
Epic 数据迁移
存量 Epic 转普通 Issue,保留 UUID、编号、父子关系、依赖和交付引用。需求、方案和批准历史只读归档,不继续旧阶段,也不因为历史需求已批准而把工作标记完成。新的需求方案由 OpenSpec 持有。
验证边界
源码、外部 CI、迁移/部署和实际业务结果分别提供证据。本地验证:根据项目策略禁止执行。
部门职责与历史
部门版我的工作复用上述生命周期及当前责任规则,按有效成员当前部门动态归集;创建/订阅只表示相关,不算承担。状态事件在完成前冻结有效 assignee 与阶段责任的部门快照,供历史分析使用;调岗不重写历史。退役部门审批不会放宽任何原生状态、类型动作、专业/测试验收或访问权限。