Skip to content

Beaver 标签体系规范 (GitHub Issue Label System)

为了实现自动化的状态追踪与智能通知,Beaver 采用一套基于前缀的结构化标签体系。标签不仅是分类工具,更是触发 AI 代理"推理"与"行动"的信号点。

1. 标签命名规范

  • 格式前缀/名称 (例如:status/in-progress)
  • 颜色建议:同一前缀的标签建议使用相近色系以便于视觉识别。

2. 核心标签分类

2.1 任务类型 (type/...)

定义任务的本质属性。

  • type/feat: 新功能需求。
  • type/bug: 缺陷修复。
  • type/refactor: 代码重构。
  • type/docs: 文档编写。
  • type/chore: 基础设施、构建流等杂项。

2.2 优先级 (p/...)

决定 Beaver 推理逻辑中的风险权重。

  • p/0-blocker: 阻塞级。需在当日日报中置顶显示。
  • p/1-urgent: 紧急。需在当日日报中置顶显示。
  • p/2-high: 高优先级。
  • p/3-normal: 普通。

2.3 生命周期状态 (status/...)

标注 Issue 当前所处的阶段。

状态标签适用规模语义说明
status/triage通用待分拣。新 Issue 的初始状态,等待分析规模。
status/design-pendingSize L 专属方案设计/评审中。需产出 PRD/RFC 或设计文档。
status/ready-to-developSize L 专属方案已定,待开发。小任务分拣后跳过此步。
status/in-progress通用开发/处理中。
status/blocked通用任务阻塞。需标注阻塞原因。
status/review-needed通用等待代码评审 (PR) 或方案评审。
status/qa-testingSize L 建议独立测试阶段。小任务通常在 Review 后直接完成。
status/done通用已完成且已合并。

2.4 规模区分 (size/...) - 新增

用于决定该任务适用何种复杂度的 SOP 流程。

  • size/L (Large): 大规模任务。需遵循完整 SOP,包括方案评审及 E2E 测试。
  • size/S (Small): 小规模任务。适用快速路径,跳过冗余阶段,直接进入开发。

2.5 Beaver 代理专用 (beaver/...)

由 Beaver 代理在执行合规性校验或推理时自动挂载,用于提示人工介入或标识系统状态。

  • beaver/needs-split: 规模超限。检测到 PR 中特定核心目录的变更行数 (LOC) 超过 200 行(文档、测试等不计入),或子任务拆分粒度不够,建议二次拆分。
  • beaver/missing-test: 缺失测试验证。在标记为 done 前未检测到有效的测试结论或截图证据。
  • beaver/missing-context: 缺乏上下文。Issue 描述不全,或缺少强制关联的文档 (如 PRD/RFC 链接) 以及关联的 Issue 编号。
  • beaver/missing-approval: 缺少设计审批。design-pending → ready-to-develop 转换需要至少一条 /approve 评论,但未检测到有效的审批评论。
  • beaver/upstream-blocked: 上游阻塞。由 Beaver 跨任务依赖追踪识别到,因为其依赖的上游任务被阻塞或延期导致当前任务间接阻塞。
  • beaver/stale: 长尾停滞。检测到在某状态(如 in-progressreview-needed)停留时间超过健康阈值(如 3-5 天),需要跟进。
  • beaver/overdue: 已逾期。检测到当前时间已超过该任务的 DDL,且未完成。
  • beaver/wontfix: 不予修复。标记为不打算处理的 Issue,Beaver 将跳过此类 Issue 的停滞检测和超期提醒。

3. 差异化 SOP 流程设计

Beaver 会根据 size/ 标签自动调整其通知与跟进的策略:

任务规模适用流程Beaver 关注点
size/L (大)标准 SOP (全生命周期)关注设计对齐、多阶段 Review 延迟、里程碑风险。
size/S (小)快速路径 (Fast Track)仅关注代码合规性、单次 PR 响应速度及是否已关闭。

4. 状态流转图 (Mermaid)

5. 状态驱动的系统行为 (SRA 映射)

Beaver 会根据 status/ 标签的变更及停留时长,执行差异化的自动化逻辑:

状态标签适用规模感知 (Sense) 触发点预期行动 (Action)
status/triage通用新 Issue 创建晨间提醒:加入管理者池。LLM 初筛:建议 Size 及负责人。
status/design-pendingSize L挂载标签Gatekeeper:强检 PRD/RFC 及方案文档。提醒架构师评审。停留 >3d 周报预警。
status/ready-to-developSize L状态变更晨间提醒:加入开发者今日待办清单。
status/in-progress通用状态变更日报:列入活跃清单。无提交停留 >5d 自动询问。(标记 beaver/wontfix 的 Issue 跳过停滞检测)
status/review-needed通用状态变更/PR实时告警:私信 Reviewer。校验 CI。
status/blocked通用状态变更实时告警:频道红字预警。LLM 提取根因至日报。
status/qa-testingSize L 建议状态变更Gatekeeper:校验测试覆盖率与回归结果。停留过久时周报预警。
status/done通用状态变更Gatekeeper:校验 PR 合并。计算 Cycle Time。
约束项感知 (Sense) 触发点推理 (Reason) 逻辑预期行动 (Action)
代码变更规模 (LOC)关联 PR 的代码提交校验特定核心目录代码变更是否超过 200 行(排除测试与文档)Gatekeeper:若核心目录 LOC > 200,在 PR 中自动标记 Check Failed。私信开发者要求二次拆分。
父子拆分审计Size L 挂载子任务列表 (Task List)评估拆分原子性LLM 审计:评估每个子任务的核心逻辑是否能在 200 行内实现(排除测试与文档)。若过大,回复"⚠️ 建议细化"。
测试结论核对子任务/小任务请求标记 status/done验证是否存在可信测试结论Gatekeeper:核对测试结果与 LOC 限制。无证据或超限则发表评论并通知

| 子任务进度 Rollup | 任意 size/S 任务流转 | 计算对父任务进度的贡献 | 日报:在父任务卡片中更新进度百分比及"已验证完成"的任务数。 | | 子任务阻塞 | 子任务挂载 status/blocked | 识别风险向上溢出 | 实时告警:在父任务卡片标记"间接阻塞风险",并同步至管理频道。 |

DDL 触发场景感知 (Sense) 触发点推理 (Reason) 逻辑预期行动 (Action)
临近 DDL (< 48h)轮询 DDL 字段识别为"即将逾期"高风险实时告警:私信负责人确认进度。日报:在任务标题旁挂载"⏳ 48h 内到期"标识。
已逾期 (Overdue)当前时间 > DDL识别为进度脱控实时告警:向管理频道发送"进度报警"。日报:将任务标记为红色置顶。(标记 beaver/wontfix 的 Issue 跳过超期提醒)
DDL 与状态冲突status/design-pending 且 DDL < 3d识别为前期耗时过长,后期严重风险LLM 行动:评论询问是否需要调整 DDL 或 缩减任务范围 (Size S)。
迭代复盘 (Retrospective)Milestone 变更为 Closed聚合该里程碑全生命周期数据复盘报告:生成该迭代的 The Good/The Bad 及下一迭代的优化建议。

6. 标签流转的"守门员"规则 (Guardrails)

为了保证流程的规范性和数据的准确性,Beaver 会作为"守门员"对标签的变更进行自动校验。若检测到违规操作,将在评论区给出指引并发出通知,而不会自动回滚标签。

6.1 非法状态跳转拦截 (Status Guard)

  • status/in-progressstatus/done: 禁止。必须先经过 status/review-needed 阶段进行评审。
  • status/triagestatus/in-progress (针对 size/L): 禁止。大型任务必须经过设计阶段 (status/design-pending)。
  • ❌ 缺失 size/ 标签流转: 禁止。任何任务离开 status/triage 前必须明确规模。

6.2 合并门禁依赖 (Merge Gate)

  • 合规前置条件:任何 Pull Request 试图合并时,其关联的 Issue 必须具备完整的 type/size/ 分类标签。
  • 状态要求:关联 Issue 的状态必须处于 status/review-needed

6.3 质量与测试强校验 (Quality Gate)

  • 测试证据拦截:若任务试图变更为 status/done,但 Beaver 未在评论区或关联 PR 中找到可信的测试结论(如日志、截图或自动化测试链接),将保留当前标签、发表评论并发送通知并挂载 beaver/missing-test
  • 规模超限拦截:若提交的 PR 中,针对特定核心目录的变更行数超过 200 行 (LOC,不包含文档、测试用例等),将挂载 beaver/needs-split 标签,并在 PR Checks 中将其标记为 failed,要求开发者进行二次拆分。

6.4 设计审批门禁 (Design Approval Gate)

  • 审批要求status/design-pendingstatus/ready-to-develop 转换前,Issue 评论区必须包含至少一条 /approve 命令(不区分大小写,必须出现在行首)。
  • 触发行为:若未检测到 /approve 评论,Beaver 将挂载 beaver/missing-approval 标签并发表评论提醒,但不会回滚 status/ready-to-develop 标签。用户在 Issue 下评论 /approve 后,下次 status/ready-to-develop 标签变更时 Beaver 将放行并自动清理 beaver/missing-approval
  • 审批人范围:不限制评论者身份,任何人的 /approve 评论均视为有效审批。