关于 feedback-summarization
该技能汇总 ServiceNow SPM 中的敏捷仪式反馈、利益相关者调查和项目评审记录,供 Scrum Master、项目经理及领导团队识别改进主题。它可生成行动项,并跟踪其跨迭代的处理情况。
主要功能
- 01提取冲刺回顾记录与评论
- 02收集利益相关者调查回复
- 03归纳跨来源的重复主题
- 04将反馈分类为可执行主题
- 05从反馈生成优先行动项
- 06跨冲刺跟踪行动项
适用场景
- 01汇总单个冲刺的回顾反馈
- 02识别季度内反复出现的改进主题
- 03分析利益相关者对交付质量的看法
MCP 相关
该技能使用 ServiceNow MCP 工具查询冲刺、调查和日志数据,生成改进故事,并将摘要写入记录。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill feedback-summarization安装后在 Claude Code 中输入/feedback-summarization确认已加载。
详细介绍
反馈总结
概述
此技能用于总结 ServiceNow SPM 中从敏捷会议、利益相关者调查和项目评审中收集的反馈。涵盖:
- 从
rm_sprint中提取 Sprint 回顾记录和评论中的反馈 - 分析
asmt_assessment_instance中的 Sprint 评审笔记和利益相关者评估 - 识别多个反馈来源中的重复主题
- 将反馈归类为可执行的主题(流程、工具、沟通、质量、工作量)
- 根据汇总的反馈生成优先级排序后的行动项
- 跨 Sprint 跟踪行动项的解决情况,持续改进
适用场景: Scrum Master 需要总结回顾反馈、项目经理希望汇总利益相关者的整体态度、领导层需要跨团队了解重复出现的改进主题,或团队正在准备季度规划会议时。
价值主张: 将零散反馈转化为结构化见解,揭示单次回顾中不易发现的跨 Sprint 模式,并通过跨迭代跟踪改进行动来明确责任。
前提条件
- 插件:
com.snc.sdlc.agile.2.0(Agile Development 2.0)、com.snc.assessment(可选,用于调查) - 角色:
scrum_master、scrum_admin、pa_admin或admin - 访问权限: 对
rm_sprint、rm_story、asmt_assessment_instance和日志字段表具有读取权限 - 知识: 了解敏捷会议、回顾形式以及团队的 Sprint 节奏
操作步骤
第 1 步:收集 Sprint 回顾数据
从 Sprint 记录和相关日志条目中获取回顾反馈。
使用 MCP(Claude Code/Desktop):
Tool: SN-Query-Table
Parameters:
table_name: rm_sprint
query: release.product.sys_id=[product_sys_id]^state=3^ORDERBYDESCend_date
fields: sys_id,number,short_description,start_date,end_date,state,story_points,capacity,retrospective_notes,velocity
limit: 6
使用 REST API:
GET /api/now/table/rm_sprint?sysparm_query=release.product.sys_id=[product_sys_id]^state=3^ORDERBYDESCend_date&sysparm_fields=sys_id,number,short_description,start_date,end_date,state,story_points,capacity,retrospective_notes,velocity&sysparm_limit=6&sysparm_display_value=true
获取日志/工作备注以了解详细反馈:
Tool: SN-Query-Table
Parameters:
table_name: sys_journal_field
query: name=rm_sprint^element=work_notes^element_id=[sprint_sys_id]
fields: value,sys_created_on,sys_created_by
limit: 30
order_by: -sys_created_on
第 2 步:收集利益相关者调查回复
从 Sprint 评审或利益相关者调查中收集评估数据。
使用 MCP:
Tool: SN-Query-Table
Parameters:
table_name: asmt_assessment_instance
query: metric_type.nameLIKEsprint review^ORmetric_type.nameLIKEstakeholder^state=complete^taken_on>=javascript:gs.monthsAgoStart(3)
fields: sys_id,number,metric_type,user,user.department,taken_on,percent,state,trigger_id
limit: 50
order_by: -taken_on
获取各个问题的回复:
Tool: SN-Query-Table
Parameters:
table_name: asmt_assessment_instance_question
query: instance.metric_type.nameLIKEsprint review^instance.taken_on>=javascript:gs.monthsAgoStart(3)^metric.datatype=string^string_valueISNOTEMPTY
fields: string_value,metric.name,metric.question,instance.taken_on,instance.user.name
limit: 100
order_by: -instance.taken_on
使用 REST API:
GET /api/now/table/asmt_assessment_instance_question?sysparm_query=instance.metric_type.nameLIKEsprint%20review^metric.datatype=string^string_valueISNOTEMPTY^instance.taken_on>=javascript:gs.monthsAgoStart(3)&sysparm_fields=string_value,metric.name,instance.taken_on,instance.user.name&sysparm_limit=100&sysparm_display_value=true
第 3 步:分析 Sprint 性能指标
将反馈与实际 Sprint 性能数据关联起来。
使用 MCP:
Tool: SN-Execute-Background-Script
Parameters:
description: Analyze sprint performance metrics for feedback context
script: |
var productId = '[product_sys_id]';
var sprintMetrics = [];
var sprint = new GlideRecord('rm_sprint');
sprint.addQuery('release.product.sys_id', productId);
sprint.addQuery('state', 3); // Complete
sprint.orderByDesc('end_date');
sprint.setLimit(6);
sprint.query();
while (sprint.next()) {
var metrics = {
sprint: sprint.short_description.toString(),
number: sprint.number.toString(),
dates: sprint.start_date.getDisplayValue() + ' to ' + sprint.end_date.getDisplayValue(),
planned_points: parseInt(sprint.capacity) || 0,
completed_points: parseInt(sprint.story_points) || 0,
velocity: 0,
stories: { total: 0, completed: 0, carried_over: 0 },
defects_found: 0
};
metrics.velocity = metrics.planned_points > 0
? Math.round((metrics.completed_points / metrics.planned_points) * 100) : 0;
// Story completion
var stories = new GlideAggregate('rm_story');
stories.addQuery('sprint', sprint.sys_id);
stories.addAggregate('COUNT');
stories.groupBy('state');
stories.query();
while (stories.next()) {
var count = parseInt(stories.getAggregate('COUNT'));
metrics.stories.total += count;
var state = parseInt(stories.state);
if (state >= 3) metrics.stories.completed += count;
else metrics.stories.carried_over += count;
}
// Defects
var defects = new GlideAggregate('rm_story');
defects.addQuery('sprint', sprint.sys_id);
defects.addQuery('classification', 'Defect');
defects.addAggregate('COUNT');
defects.query();
if (defects.next()) metrics.defects_found = parseInt(defects.getAggregate('COUNT'));
sprintMetrics.push(metrics);
}
gs.info(JSON.stringify(sprintMetrics, null, 2));
第 4 步:从反馈中识别主题
分析收集到的反馈,提取重复出现的主题。
使用 MCP:
Tool: SN-Execute-Background-Script
Parameters:
description: Categorize feedback into themes
script: |
var sprintIds = ['sprint_sys_id_1', 'sprint_sys_id_2', 'sprint_sys_id_3'];
var themes = {
process: { count: 0, items: [] },
tools: { count: 0, items: [] },
communication: { count: 0, items: [] },
quality: { count: 0, items: [] },
workload: { count: 0, items: [] },
positive: { count: 0, items: [] },
other: { count: 0, items: [] }
};
// Keyword mapping for theme detection
var keywords = {
process: ['standup', 'ceremony', 'planning', 'refinement', 'workflow', 'process', 'methodology', 'sprint', 'retro'],
tools: ['jira', 'servicenow', 'jenkins', 'pipeline', 'tooling', 'environment', 'infrastructure', 'slow', 'broken'],
communication: ['communication', 'unclear', 'alignment', 'stakeholder', 'meeting', 'update', 'inform', 'silos'],
quality: ['bug', 'defect', 'testing', 'review', 'code review', 'quality', 'regression', 'production issue'],
workload: ['overloaded', 'capacity', 'bandwidth', 'too many', 'burnout', 'deadline', 'overtime', 'scope creep'],
positive: ['great', 'improved', 'well done', 'excellent', 'good job', 'kudos', 'thank', 'appreciate']
};
sprintIds.forEach(function(sprintId) {
var journal = new GlideRecord('sys_journal_field');
journal.addQuery('name', 'rm_sprint');
journal.addQuery('element_id', sprintId);
journal.addQuery('element', 'work_notes');
journal.query();
while (journal.next()) {
var text = journal.value.toString().toLowerCase();
var categorized = false;
for (var theme in keywords) {
keywords[theme].forEach(function(kw) {
if (text.indexOf(kw) >= 0 && !categorized) {
themes[theme].count++;
themes[theme].items.push({
text: journal.value.toString().substring(0, 200),
sprint: sprintId,
date: journal.sys_created_on.getDisplayValue()
});
categorized = true;
}
});
}
if (!categorized) {
themes.other.count++;
themes.other.items.push({
text: journal.value.toString().substring(0, 200),
sprint: sprintId
});
}
}
});
gs.info(JSON.stringify(themes, null, 2));
第 5 步:生成行动项
根据已识别的主题创建可跟踪的行动项。
使用 MCP:
Tool: SN-Create-Record
Parameters:
table_name: rm_story
fields:
short_description: "Retro Action: Implement automated regression test suite for checkout flow"
description: |
## Source
Sprint retrospective feedback across Sprints 23-25
## Theme
Quality - recurring defects in checkout flow detected late in sprint
## Feedback Summary
- Sprint 23: "We found 3 production bugs in checkout that should have been caught"
- Sprint 24: "Still seeing regression issues in payment processing"
- Sprint 25: "Need automated tests before we add more features"
## Action
Create ATF test suite covering all checkout scenarios. Target: 80% coverage of critical paths.
## Success Criteria
- ATF suite running in CI/CD pipeline
- Zero checkout regressions for 2 consecutive sprints
classification: Improvement
priority: 2
state: -6
epic: [improvement_epic_sys_id]
sprint: [next_sprint_sys_id]
story_points: 8
product: [product_sys_id]
第 6 步:生成反馈总结报告
将所有分析汇编成一份全面的总结。
使用 MCP:
Tool: SN-Add-Work-Notes
Parameters:
table_name: rm_sprint
sys_id: [current_sprint_sys_id]
work_notes: |
=== FEEDBACK SUMMARY REPORT ===
Product: Customer Portal
Period: Sprints 23-25 (Feb 3 - Mar 14, 2026)
Sources: 3 sprint retros, 12 stakeholder surveys, 45 work note entries
SPRINT PERFORMANCE TREND:
- Sprint 23: 34/40 pts completed (85% velocity)
- Sprint 24: 38/40 pts completed (95% velocity) - Improved
- Sprint 25: 32/45 pts completed (71% velocity) - Declined (scope increase)
TOP THEMES (by frequency):
1. QUALITY (18 mentions) - Recurring defects in checkout flow, need for automated testing
2. WORKLOAD (14 mentions) - Scope creep in Sprint 25, team overloaded with support tickets
3. COMMUNICATION (11 mentions) - Stakeholder requirements changing mid-sprint
4. TOOLS (7 mentions) - CI/CD pipeline reliability issues causing deployment delays
5. POSITIVE (9 mentions) - Improved sprint planning, better story refinement
RECURRING ISSUES (appeared in 2+ sprints):
- Checkout regression bugs (Sprints 23, 24, 25)
- Mid-sprint scope changes (Sprints 24, 25)
- Environment instability (Sprints 23, 25)
ACTION ITEMS GENERATED:
1. [P2] Create automated regression suite for checkout (8 pts) - Sprint 26
2. [P2] Implement change freeze policy for mid-sprint scope (3 pts) - Sprint 26
3. [P3] Investigate and stabilize CI/CD pipeline (5 pts) - Sprint 27
4. [P3] Establish support ticket rotation to protect sprint capacity (2 pts) - Sprint 26
STAKEHOLDER SENTIMENT:
- Overall satisfaction: 72% (down from 78% last quarter)
- Key concern: "Delivery predictability has decreased"
- Key positive: "Quality of delivered features has improved"
PREVIOUS ACTION ITEM STATUS:
- [DONE] Improve story refinement process - Completed Sprint 24
- [IN PROGRESS] Reduce meeting overhead - 50% reduction achieved
- [NOT STARTED] Cross-training initiative - Deferred to Q2
RECOMMENDATIONS:
1. Protect sprint scope with formal change request process
2. Invest in test automation to reduce manual regression effort
3. Address stakeholder concern about predictability with revised velocity baseline
第 7 步:跨 Sprint 跟踪行动项
监控由反馈生成的行动项的解决情况。
使用 MCP:
Tool: SN-Query-Table
Parameters:
table_name: rm_story
query: classification=Improvement^epic=[improvement_epic_sys_id]
fields: number,short_description,state,sprint,story_points,assigned_to,priority,sys_updated_on
limit: 25
order_by: -sys_created_on
使用 REST API:
GET /api/now/table/rm_story?sysparm_query=classification=Improvement^epic=[improvement_epic_sys_id]&sysparm_fields=number,short_description,state,sprint,story_points,assigned_to,priority&sysparm_limit=25&sysparm_display_value=true
工具使用
MCP 工具参考
| 工具 | 使用时机 |
|---|---|
SN-Query-Table | 查询 Sprint、故事、评估和日志条目 |
SN-Get-Record | 获取特定 Sprint 或评估的详细信息 |
SN-Natural-Language-Search | 按关键词或主题描述查找反馈 |
SN-Create-Record | 创建改进故事,作为行动项 |
SN-Execute-Background-Script | 汇总指标、归类主题、批量分析 |
SN-Add-Work-Notes | 将总结报告添加到 Sprint 或项目记录中 |
REST API 参考
| 端点 | 方法 | 用途 |
|---|---|---|
/api/now/table/rm_sprint | GET | 查询 Sprint 记录和回顾数据 |
/api/now/table/rm_story | GET/POST | 查询故事并创建行动项 |
/api/now/table/asmt_assessment_instance | GET | 获取利益相关者调查回复 |
/api/now/table/asmt_assessment_instance_question | GET | 获取各个调查问题的回答 |
/api/now/table/sys_journal_field | GET | 读取工作备注和评论 |
/api/now/table/rm_release | GET | 汇总版本级别的反馈 |
最佳实践
- 持续收集反馈: 每个冲刺都使用相同的回顾格式,以便比较不同时期的主题
- 先分类,再总结: 先将反馈归纳为不同主题,再进行总结;原始列表的可操作性较低
- 正式跟踪行动项: 为每个行动项创建故事或任务;口头承诺容易被遗忘
- 闭环跟进: 每次回顾开始时,先检查之前行动项的状态,再收集新反馈
- 尽可能量化: “3 个生产环境缺陷”比“质量问题”更具可操作性
- 区分观察与建议: 明确区分发生了什么(主题)和应采取什么措施(行动)
- 跨团队汇总: 跨团队主题分析能揭示单个团队回顾中容易遗漏的系统性问题
- 限制每个冲刺的行动项数量: 每个冲刺专注于 2-3 项改进措施;行动项过多会分散注意力
故障排除
回顾记录字段为空
原因: 团队可能将回顾反馈存储在工作备注、评论或外部工具中,而不是 retrospective_notes 字段
解决方案: 查询冲刺记录对应的 sys_journal_field,查找工作备注条目。检查团队是否使用需要集成的外部回顾工具。
调查回复未关联到冲刺
原因: 评估实例可能未将 trigger_id 设置为冲刺的 sys_id
解决方案: 按日期范围匹配调查,而非直接引用(调查的 taken_on 位于冲刺开始和结束日期之间)。
主题分类遗漏反馈
原因: 基于关键词的分类能力有限;反馈可能使用了不同的术语 解决方案: 根据团队使用的语言扩充关键词列表。可以考虑使用 NLU 或文本分析 API 来提高分类准确性。
行动项未完成
原因: 行动项虽已创建,但在下一个冲刺中未获优先处理或分配
解决方案: 将行动项审查设为冲刺规划中的必经步骤。创建改进故事时,将 sprint 字段设为下一个冲刺。
示例
示例 1:单个冲刺回顾摘要
输入:“总结 Sprint 25 的回顾”
流程: 针对指定冲刺运行步骤 1、3 和 6,生成包含主题、指标和 2-3 项行动项的重点摘要。
示例 2:季度改进趋势
输入:“过去一个季度反复出现了哪些改进主题?”
流程: 对该季度的所有冲刺运行步骤 1-4,然后找出出现于 3 个以上冲刺中的主题,以便升级处理。
示例 3:利益相关者情绪分析
输入:“利益相关者如何评价我们本季度的交付质量?”
# 1. Query stakeholder assessments (Step 2)
# 2. Aggregate scores by question (quality-related questions)
# 3. Extract free-text comments about quality
# 4. Compare with previous quarter
# 5. Correlate with defect counts from Step 3
相关技能
spm/agile-story-generation- 根据改进行动项生成故事spm/acceptance-criteria- 为改进故事定义验收标准spm/project-insights- 项目健康状况和速度跟踪spm/planning-summarization- 冲刺和发布规划摘要reporting/survey-analysis- 详细分析调查回复reporting/trend-analysis- 通用趋势分析功能