mcpField
B
backlog-templates

backlog-templates

github.com/microsoft开发1.6k37 次安装今天更新
代码仓库

关于 backlog-templates

backlog-templates 为多个规划器提供统一的 ADO 与 GitHub 工作项模板、内容清理规则和 ID 约定。它还规定自主级别及免责声明的处理方式,供各规划器生成待办交接内容时复用。

主要功能

  1. 01提供 ADO 与 GitHub 模板
  2. 02规定工作项字段映射
  3. 03清理外发内容中的路径与状态数据
  4. 04定义 manual、supervised 和 autonomous 级别
  5. 05统一免责声明与工作项 ID 约定

适用场景

  1. 01生成 ADO 工作项描述
  2. 02创建 GitHub issue 的元数据和正文
  3. 03在不同规划器间统一待办交接格式

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/microsoft/hve-core --skill backlog-templates

安装后在 Claude Code 中输入/backlog-templates确认已加载。

详细介绍

Backlog 模板

为输出待办事项移交内容的所有规划器提供共享参考,涵盖 ADO 和 GitHub 工作项模板生成、内容清理、自主性级别用语、免责声明块放置位置,以及工作项 ID 约定。

概述

输出阶段最终待办工作项的规划器都需要相同的双格式模板骨架、相同的内容清理规则,以及相同的工作项 ID 分配位置约定。本技能整合了这些共享内容,让每个规划器指令文件都能引用同一来源,而不必重复说明。

调用方:

  • RAI 规划器(rai-planner 技能 references/backlog-handoff.md)
  • 安全规划器(Security Planner Agent;安全专属移交详情见 security-planning 技能的 references/backlog-formats.md)
  • SSSC 规划器(SSSC Planner Agent,遵循 sssc-planner.instructions.md)
  • 无障碍规划器(accessibility/accessibility 技能 references/phases/backlog-handoff.md)
  • 隐私规划器(Privacy Planner Agent,遵循 privacy-identity.instructions.md)

各规划器专属内容(不属于本技能):

  • 领域专属的 HTML 和 Markdown 正文内容(NIST 特征与 STRIDE 类别、WCAG 标准与 Scorecard 检查项)。
  • 严重性到优先级、严重性到级别的映射表——各规划器的输入用语不同。
  • 工作项层级映射(Epic / Feature / Story / Task / Bug)。
  • 无障碍免责声明文本(由 L7 免责声明杠杆固定在 accessibility-identity.instructions.md 中)。

ADO 工作项模板

ADO 描述字段使用 HTML,并嵌入规划器专属字段块和原文免责声明引用块。使用规划器 ID 前缀和各规划器字段集对模板骨架进行参数化。

模板骨架:

<div>
  <h3>{Domain} Control: {control_name}</h3>
  
  <h4>Implementation</h4>
  <p>{implementation_details}</p>
  <h4>Acceptance Criteria</h4>
  <ul>
    <li>{criterion_1}</li>
    <li>{criterion_2}</li>
  </ul>
  <blockquote>
  <p><strong>Note</strong> — The author created this content with assistance from AI. All outputs should be reviewed and validated by a qualified {role} reviewer before use.</p>
  <ul><li><input type="checkbox" disabled /> Reviewed and validated by a qualified {role} reviewer</li></ul>
  </blockquote>
</div>

示例(安全规划器):

<div>
  <h3>Security Control: {mitigation_name}</h3>
  <p><strong>Threat:</strong> {threat_id} - {threat_description}</p>
  <p><strong>Bucket:</strong> {bucket_name}</p>
  <p><strong>Standards:</strong> {owasp_ref}, {nist_ref}</p>
  <h4>Implementation</h4>
  <p>{implementation_details}</p>
  <h4>Acceptance Criteria</h4>
  <ul>
    <li>{criterion_1}</li>
    <li>{criterion_2}</li>
  </ul>
</div>

各规划器需替换为自己的字段块(RAI 使用 NIST 特征 + 威胁 + 控制面;无障碍使用框架 + 标准 + 面 + 用户角色 + 证据 + 权衡;SSSC 使用供应链控制 + Scorecard 检查项 + 采用类型;隐私使用数据类别 + 处理目的 + DPIA 参考 + 合法依据 + 风险级别)。

各规划器专属的 ADO 描述字段块(替换 `` 槽位的键):

  • RAI — characteristic、subcategory、principle、maturity_level、tradeoff_ref(适用时)。
  • Security — threat_id、stride_category、bucket、risk_level。
  • SSSC — Scorecard Check、Risk Level、Effort、Adoption Type、Prerequisite、Adoption Steps、Source References (Workflow, Script, Documentation)。
  • Accessibility — framework、criterion、surface、wcag_level、severity、category、risk_tier、tradeoff_ref(适用时)。当 severity 为 critical 或 major 时,添加辅助技术验证说明。
  • Privacy — data_category、processing_purpose、dpia_ref、lawful_basis、risk_tier。

GitHub Issue 模板

GitHub Issue 使用 YAML 元数据头,后接 Markdown 正文。创建时,格式为 {{<PREFIX>-TEMP-N}} 的临时 ID 会替换为真实 Issue 编号。

规范 YAML 元数据头:

---
id: "{{<PREFIX>-TEMP-N}}"
planner: {rai|security|sssc|accessibility|privacy}
priority: {Critical|High|Medium|Low}
standards: ["{standard_id_1}", "{standard_id_2}"]
evidence_refs: ["{evidence_id_1}"]
cross_planner_refs: ["{wi_id_1}"]
---

各规划器专属的扩展字段(添加到同一 YAML 块中,而非替换该块):

  • RAI — characteristic、subcategory、principle、maturity_level、tradeoff_ref、horizon、standards。
  • Security — threat_id、stride_category、risk_level、bucket、standards。
  • SSSC — scorecard_check、risk_level、adoption_type、effort、standards。
  • Accessibility — framework、criterion、surface、wcag_level、severity、category、risk_tier、tradeoff_ref、standards。
  • Privacy — data_category、processing_purpose、dpia_ref、lawful_basis、risk_tier、standards。

Markdown 正文骨架:

## {Domain} Control: {control_name}

{planner_specific_summary_lines}

### Implementation

{implementation_details}

### Acceptance Criteria

* [ ] {criterion_1}
* [ ] {criterion_2}

ADO 模板中的免责声明引用块会原样复用于 Markdown 正文末尾,以确保不同格式的内容一致。

平台字段映射

ADO
Field用途必填各规划器的覆盖项
Title方括号标签前缀 + 简洁描述是标题前缀不同([Security]、[RAI]、[A11Y][{framework}])。
Description符合 ADO 模板框架的 HTML 正文是字段块内容不同。
AcceptanceCriteria可验证的检查项是如有要求,无障碍规划会添加辅助技术验证。
Tags领域标签 + 适用的属性标签是标签词汇不同(CIA 三元组、RAI 原则、WCAG 级别等)。
Priority根据风险或严重程度确定是每个规划器使用各自的映射表。
Iteration用户提供的迭代路径可选留空时默认进入待办事项细化阶段。
AreaPath用户提供的项目区域是所有规划器在输出 ADO 工作项时都必须填写。
ParentEpic 或 Feature 父项引用可选当种子项映射到规划器专属层级时设置。
GitHub
Field用途必填各规划器的覆盖项
title方括号标签前缀 + 简洁描述是标题前缀不同(与 ADO Title 惯例一致)。
body符合 GitHub 模板的 Markdown 正文是YAML 标头补充内容和正文摘要行各不相同。
labels小写的领域标签 + 属性标签是标签词汇不同;不允许使用冒号时,去掉 prefix: 形式。
milestone如有则使用规划里程碑可选每个规划器可指定领域里程碑;否则留空。
assignees所有者角色建议可选默认填写 TBD — assign during backlog refinement.

内容清理协议

在将任何工作项输出到 ADO 或 GitHub 之前,应用以下五条规则进行清理。清理在渲染后、由 MCP 驱动创建前执行。

  1. 将 .copilot-tracking/ 的所有出现位置替换为描述性短语,例如 {domain} plan artifacts(例如 security plan artifacts、accessibility plan artifacts)。
  2. 将绝对文件系统路径替换为相对于工作区的引用。
  3. 移除嵌入的状态 JSON 或指向状态 JSON 文件的指针;提取后保留状态中的标准引用。
  4. 原样保留标准标识符:OWASP A{NN}、NIST AI RMF 子类别 ID、CIS 控制编号、WCAG 准则 ID(1.1.1、1.3.5)、Scorecard 检查名称、SLSA 级别字符串、Section 508 章节 ID、EN 301 549 条款编号。
  5. 为每个经过清理的产物追加一条 state.noticeLog 条目,包含 noticeType: "sanitization"、source: "<planner-handoff-instruction-path>"、产物路径,以及触发的清理规则。

保存在 .copilot-tracking/<planner-domain>/{slug}/debug/ 下的调试模式输出会保留完整路径,且绝不会进入面向外部的工作项。

自主性等级枚举

三个等级控制渲染后的工作项如何进入目标待办事项系统。规范词汇为 manual / supervised / autonomous。第四个值 coached 表示一种不会生成任何工作项的能力。

  • manual — 规划器会在 .copilot-tracking/ 下生成待办事项交接文件。用户在目标系统中独立创建每个工作项。不调用任何 MCP 工具。
  • supervised — 规划器会在 .copilot-tracking/ 下起草渲染后的工作项,每批向用户展示 5 到 10 个工作项供其审核,并且仅在用户批准后调用 MCP 创建工具。这是默认等级。
  • autonomous — 用户预先批准本次运行后,规划器会直接对清理后的批次调用 MCP 创建工具。所有工作项会在单次操作中创建。
  • coached — 此能力会生成对话及其自身输出,而不是待办事项工作项。它不会渲染任何内容,不会调用创建工具,也不会接入任何待办事项系统,因此不适用任何等级。没有待办事项规划器会选择此值,也没有规划器状态架构接受此值;设置此值是为了让具有辅导性质的能力在此词汇中有据可依,而不是未记录的缺失项。辅导能力不会在自身状态中记录自主性字段。

使用不同词汇的规划器之间的交叉引用映射。每个规划器都会使用自身的词汇,在会话状态的 userPreferences.autonomyTier 下保存所选值;此表是规划器之间等价关系的唯一事实来源。

规范值(此技能)无障碍(种子架构)安全RAISSSC隐私
autonomousautonomousFullFullFullFull
supervised(默认)supervisedPartialPartialPartial(默认)Partial(默认)
manualmanualManualManualGuidedManual
coached不适用不适用不适用不适用不适用

说明:

  • 无障碍的词汇已与规范名称一致;种子架构中的 autonomyTier 字段是其持久化形式。
  • SSSC 使用 Guided 作为自主性最低等级的标签。交叉引用和报告时,将 Guided 与 Manual 视为规划器之间的等价值。
  • coached 不是一个等级,也没有对应的规划器选项。它不可选,不会持久化到任何规划器状态架构中,也不包含严重性到等级的路由规则。规划器遇到此值时,应将其视为超出范围。
  • 严重性到等级的映射(即将哪种严重性路由到哪个等级)仍由各规划器的交接说明文件定义。

免责声明块放置约定

每个待办事项交接产物(交接摘要、ADO 输出文件、GitHub 输出文件)都会在文件末尾原样输出免责声明块。该免责声明块是证明规划器输出由 AI 辅助生成,并且执行前须由具备资质的人员审核的权威依据。

免责声明文本的事实来源划分:

  • RAI、安全、SSSC——从相应规划器章节下自动应用的 disclaimer-language.instructions.md 中读取免责声明文本。
  • 隐私——从 Privacy Planning 章节下自动应用的 disclaimer-language.instructions.md 中读取免责声明文本。
  • 无障碍——从 Disclaimer Handling 标题下自动应用的 accessibility-identity.instructions.md 中读取免责声明文本。L7 免责声明规则明确规定,无障碍免责声明应以该文件为准。请勿将其移至 disclaimer-language.instructions.md。

放置规则:

  • 在每个输出产物的末尾输出该块,而非开头。
  • 在会话中首次输出时,将 state.disclaimerShownAt 设为 ISO 8601 时间戳。
  • 每次输出都在 state.noticeLog 中追加一条记录,包含 noticeType: "handoff-disclaimer"、source: "<authoritative-instruction-path>" 和产物路径。
  • 对于 ADO 输出,描述字段中每个工作项单独使用的 HTML 引用块是独立的审核提示,不能替代文件级免责声明块。

本技能不会复述免责声明文本。输出时请从上述权威来源读取文本,以便规范文本的更新无需修改技能即可生效。

工作项 ID 命名约定

工作项采用 WI-{PREFIX}-{NNN} 格式,其中前缀标识来源规划器,{NNN} 是在计划 slug 范围内从零开始填充的单调递增序列。

规划器ADO 前缀GitHub 临时 ID
RAIWI-RAI-{{RAI-TEMP-N}}
安全WI-SEC-{{SEC-TEMP-N}}
SSSCWI-SSSC-{{SSSC-TEMP-N}}
无障碍WI-A11Y-{{A11Y-TEMP-N}}
隐私WI-PRIV-{{PRIV-TEMP-N}}

规则:

  • 不同前缀可避免多个规划器针对同一项目生成待办事项时发生 ID 冲突。
  • 序列在每个计划 slug 范围内单调递增。请勿在不同计划或会话中重复使用标识符。
  • GitHub 临时 ID 会在创建时替换为真实问题编号;请在 state.noticeLog 中保留临时 ID,以便追溯。
  • 跨规划器引用使用目标规划器的完整 ID,并在前面加上关系类型:Accessibility-Ref: WI-A11Y-{NNN}、Security-Ref: WI-SEC-{NNN}、RAI-Ref: WI-RAI-{NNN}、SSSC-Ref: WI-SSSC-{NNN}、Privacy-Ref: WI-PRIV-{NNN}。

内部引用 ID(威胁使用 T-{BUCKET}-{NNN},证据使用 EV-A11Y-{NNN},种子使用 SEED-A11Y-{NNN},权衡使用 TO-A11Y-{NNN})仅在其所属规划器范围内有效,不属于本技能的范围。

评论

支持 Markdown