Compare
Issue 流程优化:可控关闭、按标签生成报告与分层任务
2026-01-29 14:30 · Zon · Issue → AI → Report
面向 GitHub Issues 的标签门控 + 评论指令 + 幂等更新落地方案
用标签与评论指令控制Issue报告/任务生成与关闭
TL;DR
- 定义:本文将“主题”指代“报告/任务输出的模板样式(theme)”,不是 issue 话题分类。
- 通过“标签 + 评论指令”三件套控制:是否生成报告、报告深度、是否允许自动关闭。
- 采用“单条可更新的报告评论”模式:你每次回复触发重算并更新同一条评论,避免重复刷屏。
- 任务按“Epic/Task/Subtask + Complexity(S/M/L)”分层;涉及厂商价的复杂需求走专门模板与信息缺口清单。
Key Insights
- 自动关闭通常源于机器人把“已回复/已生成”误当“已完成”;应改为显式关闭(/close 或 ready-to-close 标签)。
- 报告生成与任务拆分应解耦:用 report:none/report:lite/report:deep 标签决定输出,避免每个 issue 都产出长报告。
- 评论驱动更新要幂等:用固定 marker 定位旧报告并更新(如配合 peter-evans/create-or-update-comment),并过滤 bot actor 防止循环触发。
- 复杂度与层级最好结构化(labels 或 GitHub Projects 字段),否则“简单/复杂混在一起”无法排序与分派。
Playbook
- 标签规范(最小可用):report:none(只要任务)、report:lite(摘要+任务)、report:deep(调研+任务);complexity:S/M/L;type:epic/task/subtask;state:hold/doing/done。默认给新 issue 自动加 report:lite。
- 关闭策略:工作流/机器人不再自动 close;仅当检测到评论指令“/close”或新增标签 state:ready-to-close 时才执行关闭,否则仅更新状态标签为 state:done。
- 评论触发更新:监听 issues、issue_comment(created/edited);只对指定用户/作者触发;生成内容写入带
<!-- bot-report -->marker 的评论并持续覆盖更新,可用 actions/github-script + create-or-update-comment 实现。 - 深度调研(厂商价)模板:当存在 report:deep + needs:vendor-quote 时,输出固定结构(需求约束、评估维度、候选厂商清单、待补充信息、更新时间);对“无法在线核验”的价格信息强制标注口径与来源状态。
Diagrams
Options
- 方案 A(推荐):纯 GitHub 方案:labels 控制输出,Actions 在 issue/comment 事件中生成并更新同一条报告评论;必要时同步成仓库文件便于 Obsidian 索引。
- 方案 B:把“主题”理解为“报告模板/皮肤”:机器人输出结构化数据(YAML/JSON),由 Obsidian Templater/Dataview 渲染成不同主题样式,满足你“换主题”的诉求。
- 方案 C:把“主题”理解为“话题分类”:用 issue forms 收集 Topic/Complexity,报告按 Topic 定时汇总(每日/每周),而不是每条 issue 即时生成。
- 方案 D:仅做任务拆分器:对带 report:none(或 mode:tasks)的 issue 只输出任务树与复杂度,不做调研;对 report:deep 才生成长报告与厂商价表格。
Expert Views
- 产品经理(paraphrase):把“输出类型”做成显式开关(标签/命令),默认轻量,先解决误关与刷屏,降低沟通成本。
- 开源自动化工程师(paraphrase):GitHub Actions + Octokit/gh API 足以做标签门控与幂等更新;关键工程点是防循环触发、权限最小化与失败可重试。
- 交付/采购视角(paraphrase):厂商价必须记录币种/税费/计费口径/有效期与时间戳;否则结论不可复用,宁可先产出“报价缺口清单”。
- 知识管理教练(paraphrase):层级任务要能被查询与汇总;建议把 complexity/type 变成可过滤字段,并把报告折叠在
<details>中提高可读性。
Evidence & Confidence
- GitHub Actions 可基于 issues/issue_comment 事件触发并调用 API 更新评论:confidence high;官方文档与成熟 action 支持(但此处无法在线核验)。
- “固定 marker + 更新同一评论”能显著降低噪音并便于持续迭代:confidence high;工程上可实现且风险可控(过滤 bot actor、限制触发用户)。
- “labels/Projects 字段化复杂度与层级”能提升排序、分派与统计:confidence medium;方法成熟但需要团队/个人习惯配合与字段治理。
- “厂商价调研需要口径与证据链”是高质量报告前提:confidence medium;原则可靠,但取决于能否获取可核验信息与持续维护。
Next Steps
- 澄清三件事:现在是谁在自动关闭(Actions/机器人/人工习惯)?“主题”指模板还是 UI 主题?报告最终要落到哪里(issue 评论/仓库文件/Obsidian 笔记)?
- 先落地最小标签集并创建约定文档(例如 LABELS.md),同时把“report:none”作为你快速输入时的默认选择之一。
- 做一个最小可用工作流:检测标签/命令→生成任务树→用 create-or-update-comment 覆盖更新;观察一周再加复杂度分层与厂商价模板。
- 为 needs:vendor-quote 建立标准字段(厂商、方案、价格口径、链接/截图、更新时间、备注、可核验状态),并规定无法核验时的标注格式。
Details (Optional)
Details
TL;DR
- 定义:本文将“主题”指代“报告/任务输出的模板样式(theme)”,不是 issue 话题分类。
- 通过“标签 + 评论指令”三件套控制:是否生成报告、报告深度、是否允许自动关闭。
- 采用“单条可更新的报告评论”模式:你每次回复触发重算并更新同一条评论,避免重复刷屏。
- 任务按“Epic/Task/Subtask + Complexity(S/M/L)”分层;涉及厂商价的复杂需求走专门模板与信息缺口清单。
Key Insights
- 自动关闭通常源于机器人把“已回复/已生成”误当“已完成”;应改为显式关闭(/close 或 ready-to-close 标签)。
- 报告生成与任务拆分应解耦:用 report:none/report:lite/report:deep 标签决定输出,避免每个 issue 都产出长报告。
- 评论驱动更新要幂等:用固定 marker 定位旧报告并更新(如配合 peter-evans/create-or-update-comment),并过滤 bot actor 防止循环触发。
- 复杂度与层级最好结构化(labels 或 GitHub Projects 字段),否则“简单/复杂混在一起”无法排序与分派。
Playbook
- 标签规范(最小可用):report:none(只要任务)、report:lite(摘要+任务)、report:deep(调研+任务);complexity:S/M/L;type:epic/task/subtask;state:hold/doing/done。默认给新 issue 自动加 report:lite。
- 关闭策略:工作流/机器人不再自动 close;仅当检测到评论指令“/close”或新增标签 state:ready-to-close 时才执行关闭,否则仅更新状态标签为 state:done。
- 评论触发更新:监听 issues、issue_comment(created/edited);只对指定用户/作者触发;生成内容写入带
<!-- bot-report -->marker 的评论并持续覆盖更新,可用 actions/github-script + create-or-update-comment 实现。 - 深度调研(厂商价)模板:当存在 report:deep + needs:vendor-quote 时,输出固定结构(需求约束、评估维度、候选厂商清单、待补充信息、更新时间);对“无法在线核验”的价格信息强制标注口径与来源状态。
Expert Views
- 产品经理(paraphrase):把“输出类型”做成显式开关(标签/命令),默认轻量,先解决误关与刷屏,降低沟通成本。
- 开源自动化工程师(paraphrase):GitHub Actions + Octokit/gh API 足以做标签门控与幂等更新;关键工程点是防循环触发、权限最小化与失败可重试。
- 交付/采购视角(paraphrase):厂商价必须记录币种/税费/计费口径/有效期与时间戳;否则结论不可复用,宁可先产出“报价缺口清单”。
- 知识管理教练(paraphrase):层级任务要能被查询与汇总;建议把 complexity/type 变成可过滤字段,并把报告折叠在
<details>中提高可读性。
Options
- 方案 A(推荐):纯 GitHub 方案:labels 控制输出,Actions 在 issue/comment 事件中生成并更新同一条报告评论;必要时同步成仓库文件便于 Obsidian 索引。
- 方案 B:把“主题”理解为“报告模板/皮肤”:机器人输出结构化数据(YAML/JSON),由 Obsidian Templater/Dataview 渲染成不同主题样式,满足你“换主题”的诉求。
- 方案 C:把“主题”理解为“话题分类”:用 issue forms 收集 Topic/Complexity,报告按 Topic 定时汇总(每日/每周),而不是每条 issue 即时生成。
- 方案 D:仅做任务拆分器:对带 report:none(或 mode:tasks)的 issue 只输出任务树与复杂度,不做调研;对 report:deep 才生成长报告与厂商价表格。
Evidence & Confidence
- GitHub Actions 可基于 issues/issue_comment 事件触发并调用 API 更新评论:confidence high;官方文档与成熟 action 支持(但此处无法在线核验)。
- “固定 marker + 更新同一评论”能显著降低噪音并便于持续迭代:confidence high;工程上可实现且风险可控(过滤 bot actor、限制触发用户)。
- “labels/Projects 字段化复杂度与层级”能提升排序、分派与统计:confidence medium;方法成熟但需要团队/个人习惯配合与字段治理。
- “厂商价调研需要口径与证据链”是高质量报告前提:confidence medium;原则可靠,但取决于能否获取可核验信息与持续维护。
Next Steps
- 澄清三件事:现在是谁在自动关闭(Actions/机器人/人工习惯)?“主题”指模板还是 UI 主题?报告最终要落到哪里(issue 评论/仓库文件/Obsidian 笔记)?
- 先落地最小标签集并创建约定文档(例如 LABELS.md),同时把“report:none”作为你快速输入时的默认选择之一。
- 做一个最小可用工作流:检测标签/命令→生成任务树→用 create-or-update-comment 覆盖更新;观察一周再加复杂度分层与厂商价模板。
- 为 needs:vendor-quote 建立标准字段(厂商、方案、价格口径、链接/截图、更新时间、备注、可核验状态),并规定无法核验时的标注格式。
Sources
- GitHub Actions 事件触发文档:https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows (无法在线核验)
- GitHub Issues Labels 文档:https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/about-labels (无法在线核验)
- create-or-update-comment:https://github.com/peter-evans/create-or-update-comment ,actions/github-script:https://github.com/actions/github-script (无法在线核验)
- GitHub Projects 概览:https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects ,Probot:https://github.com/probot/probot (无法在线核验)
Sources
- GitHub Actions 事件触发文档:https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows (无法在线核验)
- GitHub Issues Labels 文档:https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/about-labels (无法在线核验)
- create-or-update-comment:https://github.com/peter-evans/create-or-update-comment ,actions/github-script:https://github.com/actions/github-script (无法在线核验)
- GitHub Projects 概览:https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects ,Probot:https://github.com/probot/probot (无法在线核验)
Closing Summary
- 结论:用标签与评论指令控制Issue报告/任务生成与关闭
- 下一步:先确认“主题/自动关闭触发源/报告落点”,再按方案A落地最小标签门控与单评论更新
One next action
先确认“主题/自动关闭触发源/报告落点”,再按方案A落地最小标签门控与单评论更新
先闭环,再上强度。
— AI pipeline