跳转到内容

审批规则与完整示例

team→global 扩大适用范围必须取得新的总软件负责人审批(overall_software_lead),不能复用旧的 team_software_lead 审批或只改队号为空。迁移后使用 shared 来源和 global policyLevel;原赛季限制保留,candidate 不因迁移自动转正。

迁移台账必须保留旧审批的 approver/role/team/approvedAt、旧/新 ID、固定来源、内容冲突及新审批时间与授权依据。旧审批证明的是旧范围;新审批证明扩大后的范围,不能把旧日期伪装成 global 授权。参考 本次迁移台账。普通原范围内 candidate 审批仍按下述流程执行。示例占位身份与时间不授予任何人审批权。

审批必须在原 candidate 的同一条目内完成:保留它的 id、内容、适用范围和证据,把 status 从 candidate 改为 approved,再添加 approval。不要把审批片段另存成独立规则文件。

官方规则和共享规则只能由总软件负责人审批。下面是一个完整、可校验的 approved shared 规则文档:

schemaVersion: 4
rules:
- id: shared.example-approved
topic: example-shared-practice
title: Example shared practice
instruction: Describe one shared action the code should follow.
rationale: Explain why multiple teams use this practice.
status: approved
authority: shared
policyLevel: global
applicability:
teams: []
seasons: ["2025-2026"]
profiles: []
evidence:
- type: git
repository: owner/repository
commit: abcdef1234567890
file: TeamCode/src/main/java/example/SharedExample.java
symbol: SharedExample
approval:
approver: overall-software-lead
role: overall_software_lead
approvedAt: 2026-08-13T00:00:00Z

team 规则只能由该队的软件负责人审批,并且规则必须只适用于审批人对应的同一个队号。完整文档示例:

schemaVersion: 4
rules:
- id: team-20827.example-approved
topic: example-team-practice
title: Example team practice
instruction: Describe one action team 20827 code should follow.
rationale: Explain why team 20827 uses this practice.
status: approved
authority: team
policyLevel: local
applicability:
teams: ["20827"]
seasons: ["2025-2026"]
profiles: []
evidence:
- type: git
repository: owner/repository
commit: abcdef1234567890
file: TeamCode/src/main/java/example/TeamExample.java
symbol: TeamExample
approval:
approver: lead-20827
role: team_software_lead
team: "20827"
approvedAt: 2026-08-13T00:00:00Z

approved 规则如果缺少审批会校验失败,非 approved 规则则不能包含审批。审批是受校验、受版本控制的 YAML 元数据,不是身份认证或不可变审批历史。

日常操作优先使用候选提取与审批命令。以下 YAML 示例表达审批数据格式,不赋予使用者审批权限。