关于 capture-tasks-from-meeting-notes
这项技能面向需要跟进会议事项的团队,可将会议记录转成 Jira 任务。它提取行动项和负责人、查询 Jira 用户,并在创建任务前要求确认。
主要功能
- 01读取粘贴的记录或 Confluence 页面
- 02提取行动项和负责人
- 03查询 Jira 账户 ID
- 04创建前展示任务供确认
- 05创建附带背景的 Jira 任务
适用场景
- 01将会议后续事项转成 Jira 任务
- 02把行动项分配给会议参与者
- 03创建工单前检查提取的任务
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ atlassian/ atlassian-mcp-server --skill capture-tasks-from-meeting-notes安装后在 Claude Code 中输入/capture-tasks-from-meeting-notes确认已加载。
附带文件references/action-item-patterns.md
详细介绍
从会议记录中提取任务
关键词
会议记录、行动项、创建任务、创建工单、提取任务、解析记录、分析记录、分配的工作、受指派人、来自会议、会后、提取任务、生成任务、转为任务、转换为任务、行动项、待办事项、任务列表、后续跟进、分配给、创建 Jira 任务、创建 Jira 工单、会议行动项、提取行动项、查找行动项、分析会议
概述
自动从会议记录中提取行动项,并创建分配给适当人员的 Jira 任务。此技能会解析非结构化的会议记录(来自 Confluence 或粘贴的文本),识别行动项及其受指派人,查找 Jira 账户 ID 并创建任务,从而免去繁琐的会后工单创建流程。
在以下情况下使用此技能: 用户的会议记录中包含需要转为 Jira 任务的行动项。
工作流
遵循以下 7 个步骤,将会议记录转化为可执行的 Jira 任务:
步骤 1:获取会议记录
向用户获取会议记录。
选项 A:Confluence 页面 URL
如果用户提供了 Confluence URL:
getConfluenceContent(
cloudId="...",
content_id="[extracted from URL]",
content_format="markdown",
detail="full"
)
URL 模式:
https://[site].atlassian.net/wiki/spaces/[SPACE]/pages/[PAGE_ID]/[title]- 从数字部分提取 PAGE_ID
- 从站点名称获取 cloudId,或使用
getAccessibleAtlassianResources
选项 B:粘贴文本
如果用户直接粘贴会议记录:
- 原样使用文本
- 无需获取内容
如果不明确
询问:“您有会议记录的 Confluence 链接吗?或者想直接粘贴记录内容?”
步骤 2:解析行动项
扫描记录,查找带有受指派人的行动项。
常见模式
模式 1:@提及格式(优先级最高)
@Sarah to create user stories for chat feature
@Mike will update architecture doc
模式 2:姓名 + 行动动词
Sarah to create user stories
Mike will update architecture doc
Lisa should review the mockups
模式 3:Action: 姓名 - 任务
Action: Sarah - create user stories
Action Item: Mike - update architecture
模式 4:带有受指派人的 TODO
TODO: Create user stories (Sarah)
TODO: Update docs - Mike
模式 5:包含姓名的项目符号
- Sarah: create user stories
- Mike - update architecture
提取逻辑
针对每个行动项,提取:
-
受指派人姓名
- @ 符号后的文本
- “to”、“will”、“should”之前的姓名
- “Action:”之后或括号中的姓名
- 名、姓或全名
-
任务描述
- “to”、“will”、“should”、“-”、“:”之后的文本
- 移除标记(@、Action:、TODO:)
- 保留原始措辞
- 包含足够的上下文
-
上下文(可选,但有帮助)
- 会议标题/日期(如有)
- 周围讨论的上下文
- 相关决策
解析示例
输入:
# Product Planning - Dec 3
Action Items:
- @Sarah to create user stories for chat feature
- Mike will update the architecture doc
- Lisa: review and approve design mockups
解析结果:
1. Assignee: Sarah
Task: Create user stories for chat feature
Context: Product Planning meeting - Dec 3
2. Assignee: Mike
Task: Update the architecture doc
Context: Product Planning meeting - Dec 3
3. Assignee: Lisa
Task: Review and approve design mockups
Context: Product Planning meeting - Dec 3
步骤 3:询问项目键
查找用户或创建任务之前,先确定 Jira 项目。
询问:“您希望将这些任务创建到哪个 Jira 项目中?(例如 PROJ、PRODUCT、ENG)”
如果用户不确定
调用 listJiraProjects 显示选项。它不是主要工具,因此请通过 execute 运行
(参见调用非主要工具):
executeRead( # or execute(...) if your client exposes a single execute tool
name="listJiraProjects",
cloudId="...",
inputs={"action": "create"}
)
展示:“我找到以下可用于创建任务的项目:PROJ(Project Alpha)、PRODUCT(Product Team)、ENG(Engineering)”
如果记录中提到了项目
会议记录通常会提到站点上不存在,或用户无权在其中创建任务的项目键。创建任何内容之前,先使用 listJiraProjects 验证项目键;如果项目键不在列表中,请说明这一点并提供最接近的匹配项,而不要在首次创建调用时就失败。
步骤 4:查找账户 ID
为每个受指派人姓名查找其 Jira 账户 ID。
查找流程
lookupJiraAccountId 不是主要工具,因此请通过 execute 运行:
executeRead( # or execute(...) if your client exposes a single execute tool
name="lookupJiraAccountId",
cloudId="...",
inputs={"query": "[assignee name]"}
)
搜索字符串可以是:
- 全名:“Sarah Johnson”
- 名:“Sarah”
- 姓:“Johnson”
- 电子邮箱:“[email protected]”
处理结果
情形 A:精确匹配(1 个结果)
✅ Found: Sarah Johnson ([email protected])
→ Use accountId from result
情形 B:无匹配(0 个结果)
⚠️ Couldn't find user "Sarah" in Jira.
Options:
1. Create task unassigned (assign manually later)
2. Skip this task
3. Try different name format (e.g., "Sarah Johnson")
Which would you prefer?
情形 C:多个匹配(2 个或更多结果)
⚠️ Found multiple users named "Sarah":
1. Sarah Johnson ([email protected])
2. Sarah Smith ([email protected])
Which user should be assigned the task "Create user stories"?
最佳实践
- 先尝试完整姓名(“Sarah Johnson”)
- 如果没有匹配项,再尝试名字(“Sarah”)
- 如果仍然没有匹配项,询问用户
- 缓存结果(不要对同一个人重复查询)
步骤 5:展示操作项
重要: 创建任何任务之前,务必先向用户展示解析出的操作项。
展示格式
I found [N] action items from the meeting notes. Should I create these Jira tasks in [PROJECT]?
1. [TASK] [Task description]
Assigned to: [Name] ([email if found])
Context: [Meeting title/date]
2. [TASK] [Task description]
Assigned to: [Name] ([email if found])
Context: [Meeting title/date]
[...continue for all tasks...]
Would you like me to:
1. Create all tasks
2. Skip some tasks (which ones?)
3. Modify any descriptions or assignees
等待确认
在用户确认之前,不要创建任务。可选操作:
- “是,全部创建” → 继续
- “跳过任务 3” → 除 #3 外全部创建
- “更改任务 2 的负责人” → 询问新的负责人
- “编辑描述” → 询问需要进行哪些更改
步骤 6:创建任务
确认后,创建每个 Jira 任务。
确定问题类型
创建任务之前,检查项目中有哪些问题类型可用:
listJiraProjectIssueTypesMetadata 不是主要工具,因此请通过 execute 运行:
executeRead( # or execute(...) if your client exposes a single execute tool
name="listJiraProjectIssueTypesMetadata",
cloudId="...",
inputs={"projectIdOrKey": "PROJ"}
)
选择合适的问题类型:
- 如果有 “Task”,则使用它(最常见)
- 面向用户的功能使用 “Story”
- 如果是缺陷,则使用 “Bug”
- 如果不存在 “Task”,则使用第一个可用的问题类型,或询问用户
对于每个操作项
createJiraIssue(
cloudId="...",
projectKey="PROJ",
issueType="[Task or available type]",
summary="[Task description]",
description="[Full description with context]",
assignee="[looked up account ID]"
)
任务摘要格式
使用动作动词并明确具体:
- ✅ “为聊天功能创建用户故事”
- ✅ “更新架构文档”
- ✅ “审核并批准设计模型”
- ❌ “做那件事”(太含糊)
任务描述格式
**Action Item from Meeting Notes**
**Task:** [Original action item text]
**Context:**
[Meeting title/date]
[Relevant discussion points or decisions]
**Source:** [Link to Confluence meeting notes if available]
**Original Note:**
> [Exact quote from meeting notes]
示例:
**Action Item from Meeting Notes**
**Task:** Create user stories for chat feature
**Context:**
Product Planning Meeting - December 3, 2025
Discussed Q1 roadmap priorities and new feature requirements
**Source:** https://yoursite.atlassian.net/wiki/spaces/TEAM/pages/12345
**Original Note:**
> @Sarah to create user stories for chat feature
步骤 7:提供摘要
创建完所有任务后,提供完整的摘要。
格式:
✅ Created [N] tasks in [PROJECT]:
1. [PROJ-123] - [Task summary]
Assigned to: [Name]
https://yoursite.atlassian.net/browse/PROJ-123
2. [PROJ-124] - [Task summary]
Assigned to: [Name]
https://yoursite.atlassian.net/browse/PROJ-124
[...continue for all created tasks...]
**Source:** [Link to meeting notes]
**Next Steps:**
- Review tasks in Jira for accuracy
- Add any additional details or attachments
- Adjust priorities if needed
- Link related tickets if applicable
操作项模式示例
模式 1:@提及(最明确)
@john to update documentation
@sarah will create the report
@mike should review PR #123
解析结果:
- 负责人:john/sarah/mike
- 任务:更新文档 / 创建报告 / 审核 PR #123
模式 2:姓名 + 动作动词
John to update documentation
Sarah will create the report
Mike should review PR #123
Lisa needs to test the feature
解析结果:
- 负责人:动作动词前的姓名
- 任务:“to/will/should/needs to” 后的文本
模式 3:结构化操作格式
Action: John - update documentation
Action Item: Sarah - create the report
AI: Mike - review PR #123
解析结果:
- 负责人:“Action:” 后、“-” 前的姓名
- 任务:“-” 后的文本
模式 4:TODO 格式
TODO: Update documentation (John)
TODO: Create report - Sarah
[ ] Mike: review PR #123
解析结果:
- 负责人:括号中的姓名或 “:” 后的姓名
- 任务:TODO 与负责人之间的文本
模式 5:项目符号列表
- John: update documentation
- Sarah - create the report
* Mike will review PR #123
解析结果:
- 负责人:“:”或“-”或动作动词前的姓名
- 任务:剩余文本
处理边缘情况
未找到操作项
如果未检测到带有负责人的操作项:
I analyzed the meeting notes but couldn't find any action items with clear assignees.
Action items typically follow patterns like:
- @Name to do X
- Name will do X
- Action: Name - do X
- TODO: X (Name)
Options:
1. I can search for TODO items without assignees
2. You can point out specific action items to create
3. I can create tasks for bullet points you specify
What would you like to do?
混合格式
如果部分操作项有负责人,部分没有:
I found [N] action items:
- [X] with clear assignees
- [Y] without assignees
Should I:
1. Create all [N] tasks ([X] assigned, [Y] unassigned)
2. Only create the [X] tasks with assignees
3. Ask you to assign the [Y] unassigned tasks
Which option would you prefer?
负责人姓名的不同写法
如果同一个人有不同的提及方式:
Notes mention: @sarah, Sarah, Sarah J.
These likely refer to the same person. I'll look up "Sarah" once and use
that account ID for all three mentions. Is that correct?
重复的操作项
如果同一任务出现多次:
I found what appears to be the same action item twice:
1. "@Sarah to create user stories" (line 15)
2. "Action: Sarah - create user stories" (line 42)
Should I:
1. Create one task (combine duplicates)
2. Create two separate tasks
3. Skip the duplicate
What would you prefer?
较长的任务描述
如果操作项文本很长(>200 个字符):
The task "[long text...]" is quite detailed.
Should I:
1. Use first sentence as summary, rest in description
2. Use full text as summary
3. Let you edit it to be more concise
Which would you prefer?
高质量结果提示
应做事项:
✅ 在笔记中使用一致的 @提及格式
✅ 尽可能填写完整姓名
✅ 明确具体地描述操作项
✅ 添加背景信息(原因/内容/时间)
✅ 确认前检查解析出的任务
不应做事项:
❌ 在一个项目符号中为同一个人混写多个任务
❌ 使用含糊的姓名(如果有 5 个 John,就不要只写 “John”)
❌ 省略动作动词(不清楚要做什么)
❌ 忘记指定项目
最佳会议笔记格式
# Meeting Title - Date
Attendees: [Names]
## Decisions
[What was decided]
## Action Items
- @FullName to [specific task with context]
- @AnotherPerson will [specific task with context]
- etc.
不应使用此技能的情况
此技能仅用于将会议操作项转换为 Jira 任务。
不要用于:
❌ 总结会议(不创建任务)
❌ 查找会议笔记(使用搜索技能)
❌ 创建日历事件
❌ 通过电子邮件发送会议笔记
❌ 一般性记笔记
仅在以下情况下使用: 已有会议笔记,且需要将操作项转换为 Jira 任务。
示例
示例 1:简单的 @提及
输入:
Team Sync - Dec 3, 2025
Action Items:
- @Sarah to create user stories for chat feature
- @Mike will update the architecture doc
- @Lisa should review design mockups
流程:
- 解析 → 找到 3 个操作项
- 项目 → “PROJ”
- 查询 → Sarah (123)、Mike (456)、Lisa (789)
- 展示 → 用户确认
- 创建 → PROJ-100、PROJ-101、PROJ-102
输出:
✅ Created 3 tasks in PROJ:
1. PROJ-100 - Create user stories for chat feature
Assigned to: Sarah Johnson
2. PROJ-101 - Update the architecture doc
Assigned to: Mike Chen
3. PROJ-102 - Review design mockups
Assigned to: Lisa Park
示例 2:混合格式
输入:
Product Review Meeting
Discussed new features and priorities.
Follow-ups:
- Sarah will draft the PRD
- Mike: implement API changes
- TODO: Review security audit (Lisa)
- Update stakeholders on timeline
处理过程:
- 解析 → 找到 4 个事项(3 个有受派人,1 个没有)
- 询问 → “找到 3 个有受派人的事项,1 个没有。全部创建还是只创建已分配的?”
- 用户 → “全部创建,把最后一个设为未分配”
- 创建 → 4 个任务(3 个已分配,1 个未分配)
示例 3:姓名查找问题
输入:
Sprint Planning
Action Items:
- @John to update tests
- @Sarah to refactor code
处理过程:
- 解析 → 2 个行动事项
- 查找 “John” → 找到 3 个 John!
- 询问 → “是哪位 John?(John Smith、John Doe、John Wilson)”
- 用户 → “John Smith”
- 创建 → 两个任务均已正确分配
快速参考
主要工具: getConfluenceContent(如果有 URL),或使用粘贴的文本
账户查找: executeRead(name="lookupJiraAccountId", inputs={"query": ...})(不是主要工具)
任务创建: 使用 assignee(账户 ID)调用 createJiraIssue
要查找的行动模式:
@Name to/will/should XName to/will/should XAction: Name - XTODO: X (Name)Name: X
始终:
- 创建前展示解析出的任务
- 妥善处理姓名查找失败的情况
- 在任务描述中加入上下文
- 提供附带链接的摘要
请记住:
- 人工参与至关重要(创建前展示)
- 姓名查找可能失败(准备备用方案)
- 灵活匹配模式
- 保留上下文很重要
调用非主要工具
Atlassian Rovo MCP 服务仅会在工具列表中直接公开少量主要工具。其他所有工具都位于目录中,需通过元工具调用:
discover— 不知道操作名称时,用自然语言描述目标。 它会返回要使用的准确name和inputs。如果某个操作已作为主要工具提供,请勿对其调用discover。- 执行系列工具 — 按名称运行目录中的操作。请检查工具列表:有些客户端会提供一个
execute,另一些则提供executeRead/executeWrite/executeDestructive,并要求使用与操作相匹配的层级。参数相同:
executeRead( # or execute(...) if your client exposes a single execute tool
name="<operationName>",
cloudId="...",
inputs={"param": "value"}
)
重要规则:
cloudId是顶层参数,与name和inputs同级——切勿将其放入inputs。声明了omitCloudId的操作(例如getContentFormatGuide)不需要cloudId。inputs是一个扁平对象。 服务会自行将每个参数路由到路径、查询或正文。- 使用实时工具架构中的准确参数名称。 无法识别的参数会被丢弃,而不会报告错误,因此参数名称错误会静默失败——调用成功,但你的值会被忽略。如有疑问,请先阅读架构或
discover结果。 - 如果调用报告操作未知,请使用不同关键词运行
discover,并使用其返回的名称,而不要猜测。