mcpField
C
capture-tasks-from-meeting-notes

capture-tasks-from-meeting-notes

github.com/atlassian生产力1.1k298 次安装3 周前更新
代码仓库

关于 capture-tasks-from-meeting-notes

这项技能面向需要跟进会议事项的团队,可将会议记录转成 Jira 任务。它提取行动项和负责人、查询 Jira 用户,并在创建任务前要求确认。

主要功能

  1. 01读取粘贴的记录或 Confluence 页面
  2. 02提取行动项和负责人
  3. 03查询 Jira 账户 ID
  4. 04创建前展示任务供确认
  5. 05创建附带背景的 Jira 任务

适用场景

  1. 01将会议后续事项转成 Jira 任务
  2. 02把行动项分配给会议参与者
  3. 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
提取逻辑

针对每个行动项,提取:

  1. 受指派人姓名

    • @ 符号后的文本
    • “to”、“will”、“should”之前的姓名
    • “Action:”之后或括号中的姓名
    • 名、姓或全名
  2. 任务描述

    • “to”、“will”、“should”、“-”、“:”之后的文本
    • 移除标记(@、Action:、TODO:)
    • 保留原始措辞
    • 包含足够的上下文
  3. 上下文(可选,但有帮助)

    • 会议标题/日期(如有)
    • 周围讨论的上下文
    • 相关决策
解析示例

输入:

# 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

流程:

  1. 解析 → 找到 3 个操作项
  2. 项目 → “PROJ”
  3. 查询 → Sarah (123)、Mike (456)、Lisa (789)
  4. 展示 → 用户确认
  5. 创建 → 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

处理过程:

  1. 解析 → 找到 4 个事项(3 个有受派人,1 个没有)
  2. 询问 → “找到 3 个有受派人的事项,1 个没有。全部创建还是只创建已分配的?”
  3. 用户 → “全部创建,把最后一个设为未分配”
  4. 创建 → 4 个任务(3 个已分配,1 个未分配)

示例 3:姓名查找问题

输入:

Sprint Planning

Action Items:
- @John to update tests
- @Sarah to refactor code

处理过程:

  1. 解析 → 2 个行动事项
  2. 查找 “John” → 找到 3 个 John!
  3. 询问 → “是哪位 John?(John Smith、John Doe、John Wilson)”
  4. 用户 → “John Smith”
  5. 创建 → 两个任务均已正确分配

快速参考

主要工具: getConfluenceContent(如果有 URL),或使用粘贴的文本
账户查找: executeRead(name="lookupJiraAccountId", inputs={"query": ...})(不是主要工具)
任务创建: 使用 assignee(账户 ID)调用 createJiraIssue

要查找的行动模式:

  • @Name to/will/should X
  • Name to/will/should X
  • Action: Name - X
  • TODO: 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,并使用其返回的名称,而不要猜测。

评论

支持 Markdown