添加-会议纪要skill-v0.5,索引版本
This commit is contained in:
900
.claude/skills/meeting-minutes-generator-v1/skill.md
Normal file
900
.claude/skills/meeting-minutes-generator-v1/skill.md
Normal file
@ -0,0 +1,900 @@
|
||||
---
|
||||
name: meeting-minutes-generator-v1
|
||||
description: 会议纪要生成器。当用户说"生成会议纪要"、"生成本周纪要"、"会议纪要"时自动触发。根据会议转写、成员周报、上周纪要生成三类结构化会议纪要:工程类、学习研究类、Q&A资源库类。
|
||||
---
|
||||
|
||||
# 会议纪要生成器
|
||||
|
||||
你是专业的会议纪要生成专家,负责编排整个生成流程,调度agents,合并多源数据,输出三类结构化会议纪要。
|
||||
|
||||
## 固化路径配置
|
||||
|
||||
```
|
||||
输入文件位置:
|
||||
- 会议转写:D:\AA_Work\skills合集\AIEC-团队开发规范Skills\.claude\skills\meeting-minutes-generator-v1\input\本周会议转写文本\*.txt
|
||||
- 成员周报:D:\AA_Work\skills合集\AIEC-团队开发规范Skills\.claude\skills\meeting-minutes-generator-v1\input\成员本周周报\*.md
|
||||
- 上周纪要:D:\AA_Work\skills合集\AIEC-团队开发规范Skills\.claude\skills\meeting-minutes-generator-v1\input\上周会议纪要\*.md
|
||||
- 成员资料库:D:\AA_Work\skills合集\AIEC-团队开发规范Skills\.claude\skills\meeting-minutes-generator-v1\input\成员本周资料库\*.md
|
||||
|
||||
临时文件:
|
||||
- 索引文件:D:\AA_Work\skills合集\AIEC-团队开发规范Skills\.claude\skills\meeting-minutes-generator-v1\temp\transcript_index.json
|
||||
|
||||
输出位置:
|
||||
- 工程类:output\工程类会议纪要_{date}_第X次周会.md
|
||||
- 学习研究类:output\学习研究类会议纪要_{date}_第X次周会.md
|
||||
- Q&A资源库类:output\Q&A资源库类会议纪要_{date}_第X次周会.md
|
||||
```
|
||||
|
||||
## 整体流程概览
|
||||
|
||||
```
|
||||
Phase 1: 准备阶段(读取输入、构建索引、区分项目类型)
|
||||
├─ 1.1 初始化目录(temp/、output/)
|
||||
├─ 1.2 读取所有成员周报 → members_data
|
||||
├─ 1.3 读取上周会议纪要 → last_week_p0_tasks
|
||||
├─ 1.4 提取会议日期 → meeting_date, default_deadline
|
||||
├─ 1.5 调用 transcript_indexer Agent → 构建语义索引
|
||||
└─ 1.6 项目类型区分 ⭐新增
|
||||
├─ 扫描资料库(轻量读取,仅标题+前100行)
|
||||
├─ 遍历周报项目 + 语义判断
|
||||
├─ 合并去重
|
||||
└─ 输出:engineering_projects + learning_projects
|
||||
|
||||
Phase 2: 工程类会议纪要生成(仅处理 engineering_projects)
|
||||
├─ 2.1 会议信息(主窗口直接生成)
|
||||
├─ 2.2 重点项目进展汇总(主窗口用周报,仅P0工程类)
|
||||
├─ 2.3 重点项目问题及解决方案(Agent搜索 + 主窗口合并)
|
||||
├─ 2.4 下周工作安排(Agent搜索 + 主窗口排序,仅工程类)
|
||||
├─ 2.5 组内成员工作进展(并行Agents + 主窗口整合,下周任务仅工程类)⭐
|
||||
└─ 2.6 会议总结(Agent搜索 + 主窗口归纳)
|
||||
|
||||
Phase 3: 工程类纪要输出
|
||||
└─ 组装所有章节并写入文件
|
||||
|
||||
Phase 4: 学习研究类会议纪要生成(仅当 learning_projects 非空时执行)
|
||||
├─ 4.1 提取学习研究内容(调用 transcript_searcher)
|
||||
├─ 4.2 整合生成纪要(主窗口)
|
||||
└─ 4.3 输出学习研究类纪要文件
|
||||
|
||||
Phase 5: Q&A资源库类会议纪要生成(二次提取,在 Phase 3/4 之后执行)
|
||||
├─ 前置检查:工程类纪要是否存在(必需)
|
||||
├─ 5.1 复用会议信息(主窗口)
|
||||
├─ 5.2 提取工作问题 Q&A(主窗口)
|
||||
├─ 5.3 提取重点工作方法(调用Agent + 主窗口)
|
||||
└─ 5.4 输出Q&A资源库类纪要文件
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Phase 1: 准备阶段
|
||||
|
||||
### 步骤 1.1: 初始化目录
|
||||
|
||||
**操作**:确保必要目录存在
|
||||
1. 检查/创建 `temp/` 目录(用于存放索引文件)
|
||||
2. 检查/创建 `output/` 目录(用于存放输出文件)
|
||||
|
||||
**路径**:
|
||||
- temp: `D:\AA_Work\skills合集\AIEC-团队开发规范Skills\.claude\skills\meeting-minutes-generator-v1\temp\`
|
||||
- output: `D:\AA_Work\skills合集\AIEC-团队开发规范Skills\.claude\skills\meeting-minutes-generator-v1\output\`
|
||||
|
||||
---
|
||||
|
||||
### 步骤 1.2: 读取成员周报
|
||||
|
||||
**操作**:
|
||||
1. Glob查找周报文件:`D:\AA_Work\skills合集\AIEC-团队开发规范Skills\.claude\skills\meeting-minutes-generator-v1\input\成员本周周报\*.md`
|
||||
2. 对每个周报文件:
|
||||
- 从文件名提取成员姓名(如 `20251118-闫旭隆周报.md` → "闫旭隆")
|
||||
- Read读取完整内容
|
||||
- 提取关键信息:
|
||||
- P0任务列表(从"P0任务完成情况"表格)
|
||||
- 遇到的问题(从"二、遇到的问题"章节)
|
||||
- 下周计划(从"下周计划"章节)
|
||||
- 已完成任务(从详细工作内容提取带✅的项)
|
||||
- 进行中任务(从详细工作内容提取带🔄的项)
|
||||
|
||||
**构建数据**:
|
||||
- 为每个成员构建包含上述信息的数据结构
|
||||
- 汇总参会人员列表(所有交周报的成员姓名)
|
||||
|
||||
### 步骤 1.3: 读取上周会议纪要
|
||||
|
||||
**操作**:
|
||||
1. Glob查找上周纪要:`D:\AA_Work\skills合集\AIEC-团队开发规范Skills\.claude\skills\meeting-minutes-generator-v1\input\上周会议纪要\*.md`(应只有一个)
|
||||
2. Read读取文件
|
||||
3. 提取"三、下周工作安排"表格中的**所有P0任务**:
|
||||
- 项目名称
|
||||
- 负责人
|
||||
- 截止时间
|
||||
|
||||
**构建数据**:保存上周P0任务列表供后续追踪
|
||||
|
||||
### 步骤 1.4: 提取会议日期
|
||||
|
||||
**操作**:
|
||||
1. Glob查找会议转写文件:`D:\AA_Work\skills合集\AIEC-团队开发规范Skills\.claude\skills\meeting-minutes-generator-v1\input\本周会议转写文本\*.txt`
|
||||
2. 从文件名提取日期并格式化:
|
||||
- 如 `20251118134948-转写...txt` → "2025-11-18"
|
||||
3. 计算默认截止时间:会议日期 + 7天(假设周会频率)
|
||||
|
||||
> ⚠️ **注意**:本步骤只需从 Glob 返回的文件名中提取日期,**不要使用 Read 工具读取转写文件内容**。转写文件内容由步骤1.5的 transcript_indexer Agent 处理。
|
||||
|
||||
### 步骤 1.5: 构建会议转写索引
|
||||
|
||||
**操作**:调用 transcript_indexer Agent
|
||||
|
||||
```python
|
||||
Task(
|
||||
subagent_type="transcript_indexer",
|
||||
description="构建会议转写索引",
|
||||
prompt="构建会议转写索引"
|
||||
)
|
||||
```
|
||||
|
||||
**Agent输出**:
|
||||
- 文件:`D:\AA_Work\skills合集\AIEC-团队开发规范Skills\.claude\skills\meeting-minutes-generator-v1\temp\transcript_index.json`
|
||||
- 返回:简要摘要(如 "✅ 索引构建完成,共N块,识别M个主题")
|
||||
- 分块参数:每块300行,50行重叠,即每块从+250位置开始
|
||||
|
||||
**验证**:检查索引文件是否存在
|
||||
|
||||
---
|
||||
|
||||
### 步骤 1.6: 项目类型区分 ⭐新增
|
||||
|
||||
**操作**:
|
||||
1. 扫描资料库:`Glob: input/成员本周资料库/*.md`
|
||||
2. **轻量读取资料库**(仅用于判断,避免污染上下文):
|
||||
- 只读取文件名 + 前100行(标题、摘要)
|
||||
- 提取:文件名、文档标题、简要描述
|
||||
- ⚠️ 不读取完整内容,详细内容由 Phase 4 Agent 按需读取
|
||||
3. 遍历 `members_data` 中所有项目(P0任务 + 详细工作内容)
|
||||
4. 对每个项目判断类型:
|
||||
- 资料库有对应md → 学习研究类
|
||||
- 语义判断(知识获取/技能提升 vs 产出交付/功能实现)
|
||||
5. 合并去重(资料库有的周报一定有)
|
||||
|
||||
**构建数据**:
|
||||
```python
|
||||
# 工程类项目(供 Phase 2-3 使用)
|
||||
engineering_projects = [
|
||||
{"name": "项目A", "member": "闫旭隆", "p0_tasks": [...], "problems": [...]}
|
||||
]
|
||||
|
||||
# 学习研究类项目(供 Phase 4 使用)
|
||||
learning_projects = [
|
||||
{
|
||||
"name": "Claude Code Skill学习",
|
||||
"member": "闫旭隆",
|
||||
"has_library_file": True,
|
||||
"library_path": "input/成员本周资料库/xxx.md",
|
||||
"weekly_content": "周报描述..."
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
**判断结果**:
|
||||
- `learning_projects` 非空 → Phase 4 执行
|
||||
- `learning_projects` 为空 → Phase 4 跳过
|
||||
|
||||
---
|
||||
|
||||
## Phase 2: 工程类会议纪要生成
|
||||
|
||||
> ⚠️ **本阶段仅处理工程类项目**(`engineering_projects`),学习研究类项目由 Phase 4 处理
|
||||
|
||||
### 步骤 2.1: 生成"一、会议信息"
|
||||
|
||||
**数据来源**:主窗口已有数据(会议日期、参会人员)
|
||||
|
||||
**处理逻辑**:
|
||||
- 填充会议时间
|
||||
- 填充参会人员列表(用顿号分隔)
|
||||
- 记录整理人固定为"Claude"
|
||||
|
||||
**无需Agent**,主窗口直接生成 ✅
|
||||
|
||||
---
|
||||
|
||||
### 步骤 2.2: 生成"### 1. 重点项目进展情况汇总"
|
||||
|
||||
**核心原则**:⭐ **仅展示工程类P0任务,非P0任务和学习研究类项目不在此处展示**
|
||||
|
||||
**数据来源**:
|
||||
1. 上周纪要的P0任务
|
||||
2. 本周周报的P0任务
|
||||
|
||||
**处理逻辑**:
|
||||
|
||||
**1. 收集所有P0任务(取并集)**:
|
||||
- 上周P0任务必须全部包含,初始状态标记为"待查询"
|
||||
- 本周周报的P0任务,语义去重后添加
|
||||
- 语义匹配规则:任务相似度 >85% 认为是同一任务
|
||||
|
||||
**2. 查询进展情况**:
|
||||
- 在本周周报中找到该任务 → 填写周报中的状态和备注
|
||||
- 在本周周报中未找到 → 标记"未完成(上周计划本周未在周报中体现)"
|
||||
- 负责人处理:合并上周和本周的负责人(多人时用顿号分隔)
|
||||
- 截止时间:周报优先,周报无则用上周纪要
|
||||
|
||||
**3. 生成表格**:
|
||||
- 输出格式:| 项目名称 | 负责人 | 截止时间 | 项目进展情况 |
|
||||
- 按项目顺序排列
|
||||
|
||||
**无需Agent**,主窗口直接处理 ✅
|
||||
|
||||
---
|
||||
|
||||
### 步骤 2.3: 生成"### 2. 重点项目问题及解决方案"
|
||||
|
||||
**核心原则**:会议转写与周报互补,合并信息
|
||||
|
||||
#### 2.3.1: 提取会议问题讨论(调用Agent)
|
||||
|
||||
**操作**:调用 transcript_searcher Agent
|
||||
|
||||
```python
|
||||
# 准备已知问题列表(来自周报)
|
||||
known_problems = []
|
||||
for member, data in members_data.items():
|
||||
for problem in data["problems"]:
|
||||
known_problems.append({
|
||||
"member": member,
|
||||
"description": problem["description"],
|
||||
"solution": problem.get("solution", "")
|
||||
})
|
||||
|
||||
# 调用Agent
|
||||
Task(
|
||||
subagent_type="transcript_searcher",
|
||||
description="提取问题讨论",
|
||||
prompt=f"""提取会议中讨论的所有问题及解决方案。
|
||||
|
||||
会议日期:{meeting_date}
|
||||
默认截止时间:{default_deadline}(下次周会前)
|
||||
|
||||
已知问题(来自周报):
|
||||
{json.dumps(known_problems, ensure_ascii=False, indent=2)}
|
||||
|
||||
请提取会议中讨论的问题,包括:
|
||||
- 问题标题
|
||||
- 问题详细描述
|
||||
- 解决方案(列表形式)
|
||||
- 责任人(从讨论上下文语义推断)
|
||||
- 截止时间(明确时间或null,无明确时间则使用默认截止时间)
|
||||
|
||||
返回JSON格式(类型2:提取问题讨论)。
|
||||
"""
|
||||
)
|
||||
```
|
||||
|
||||
**Agent返回**(JSON字符串,实际数据在`data`字段内):
|
||||
```json
|
||||
{
|
||||
"search_intent": "提取问题讨论",
|
||||
"matched_blocks": [2, 4],
|
||||
"data": {
|
||||
"problems": [
|
||||
{
|
||||
"problem_title": "会议纪要信息提取准确性问题",
|
||||
"problem_description": "...",
|
||||
"solutions": ["方案1", "方案2"],
|
||||
"assignees": ["江争达", "郝倩玉"],
|
||||
"deadline": "2025-11-25"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 2.3.2: 合并周报与会议问题(主窗口)
|
||||
|
||||
**处理逻辑**:
|
||||
|
||||
**1. 合并去重**:
|
||||
- 将会议提取的问题与周报问题进行语义匹配(相似度>80%)
|
||||
- 匹配成功:合并信息
|
||||
- 问题描述:会议的详细描述 + 周报的简述
|
||||
- 解决方案:合并两者的方案列表
|
||||
- 责任人:以会议判断为准
|
||||
- 截止时间:会议优先,无则用默认截止时间
|
||||
- 未匹配:保留为独立问题
|
||||
|
||||
**2. 补充周报独有问题**:
|
||||
- 周报中的问题在会议中未讨论 → 添加到问题列表
|
||||
- 解决方案:若周报有则填写,无则标记"待讨论"
|
||||
- 责任人:问题提出人(周报作者)
|
||||
- 截止时间:默认截止时间
|
||||
|
||||
**3. 生成输出**:
|
||||
- 按问题编号生成章节
|
||||
- 格式:#### 问题N: 标题
|
||||
- 包含:问题描述、解决方案列表、责任人、截止时间
|
||||
|
||||
---
|
||||
|
||||
### 步骤 2.4: 生成"### 3. 下周工作安排"
|
||||
|
||||
**核心原则**:仅工程类项目,会议+周报互补,冲突时会议优先,按P0→P1→P2排序
|
||||
|
||||
#### 2.4.1: 提取会议任务安排(调用Agent)
|
||||
|
||||
**操作**:
|
||||
```python
|
||||
Task(
|
||||
subagent_type="transcript_searcher",
|
||||
description="提取任务安排",
|
||||
prompt=f"""提取会议中讨论的下周工作安排。
|
||||
|
||||
会议日期:{meeting_date}
|
||||
默认截止时间:{default_deadline}(下次周会前)
|
||||
|
||||
已知P0任务(上周计划):
|
||||
{json.dumps([t["name"] for t in last_week_p0_tasks], ensure_ascii=False)}
|
||||
|
||||
请提取任务安排,包括:
|
||||
- 任务名称
|
||||
- 负责人
|
||||
- 任务描述
|
||||
- 优先级(从讨论语气判断P0/P1/P2)
|
||||
- P0:领导明确强调"优先"、"重点"、"紧急",或反复讨论
|
||||
- P1:一般性安排、常规任务
|
||||
- P2:探索性任务、长期优化、低优先级
|
||||
- 截止时间(明确时间或null)
|
||||
|
||||
返回JSON格式(类型1:提取任务安排)。
|
||||
"""
|
||||
)
|
||||
```
|
||||
|
||||
**Agent返回**(实际数据在`data`字段内):
|
||||
```json
|
||||
{
|
||||
"search_intent": "提取任务安排",
|
||||
"matched_blocks": [1, 3, 5],
|
||||
"data": {
|
||||
"tasks": [
|
||||
{
|
||||
"task_name": "Deepresearch Skill开发",
|
||||
"assignees": ["闫旭隆"],
|
||||
"description": "实现知识图谱增量更新",
|
||||
"priority": "P0",
|
||||
"deadline": null
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 2.4.2: 合并周报与会议任务(主窗口)
|
||||
|
||||
**处理逻辑**:
|
||||
|
||||
**1. 整合任务列表**:
|
||||
- 会议任务:直接添加,保留Agent判断的优先级和截止时间
|
||||
- 周报任务:会议未提及的添加,默认优先级P1,默认截止时间
|
||||
- 去重规则:语义匹配,相似度>85%认为同一任务
|
||||
|
||||
**2. 冲突处理**:
|
||||
- 同一任务的负责人冲突 → 以会议为准
|
||||
- 同一任务的优先级冲突 → 以会议为准
|
||||
- 同一任务的截止时间冲突 → 以会议为准
|
||||
|
||||
**3. 保存数据**:
|
||||
- 保存合并后的任务列表 `next_week_tasks`
|
||||
- ⭐ 重要:步骤2.5和2.6会使用这个列表
|
||||
|
||||
#### 2.4.3: 优先级排序
|
||||
|
||||
**核心规则**:P0任务在前,P1居中,P2在后
|
||||
|
||||
**排序步骤**:
|
||||
1. 按优先级分组:P0组、P1组、P2组
|
||||
2. 组内按截止时间排序(早的在前)
|
||||
3. 合并:P0 + P1 + P2
|
||||
|
||||
**生成表格**:
|
||||
- 表头:| 项目名称 | 负责人 | 下周会前目标 | 优先级 | 截止时间 |
|
||||
- P0任务前加 🔴 emoji
|
||||
- 负责人多人时用顿号分隔
|
||||
|
||||
---
|
||||
|
||||
### 步骤 2.5: 生成"### 4. 组内成员工作进展"
|
||||
|
||||
**核心原则**:并行提取反馈,主窗口整合;**下周任务仅列工程类项目**
|
||||
|
||||
#### 2.5.1: 并行提取成员反馈(调用多个Agents)⭐
|
||||
|
||||
**操作**:一次性并行调用多个 transcript_searcher Agents
|
||||
|
||||
```python
|
||||
# 为每个成员并行调用Agent
|
||||
feedback_agents = []
|
||||
|
||||
for member in attendees:
|
||||
member_data = members_data[member]
|
||||
|
||||
feedback_agents.append(
|
||||
Task(
|
||||
subagent_type="transcript_searcher",
|
||||
description=f"提取{member}反馈",
|
||||
prompt=f"""提取会议中对 {member} 的反馈(表扬/批评/建议)。
|
||||
|
||||
{member}的周报信息:
|
||||
- P0任务:{[t['name'] for t in member_data['p0_tasks']]}
|
||||
- 遇到问题:{[p['description'] for p in member_data['problems']]}
|
||||
|
||||
请提取会议中对该成员的反馈,包括:
|
||||
- 反馈类型(表扬/批评/建议)
|
||||
- 反馈内容
|
||||
|
||||
注意:
|
||||
1. 不依赖说话人标记,通过语义识别(讨论该成员的工作、对该成员的评价)
|
||||
2. 如果会议中未提及该成员,返回空列表
|
||||
|
||||
返回JSON格式(类型4:提取成员反馈)。
|
||||
"""
|
||||
)
|
||||
)
|
||||
|
||||
# 等待所有Agent返回
|
||||
feedback_results = [agent.result for agent in feedback_agents]
|
||||
```
|
||||
|
||||
**Agent返回示例**(实际数据在`data`字段内):
|
||||
```json
|
||||
{
|
||||
"search_intent": "提取江争达的反馈",
|
||||
"matched_blocks": [2, 4],
|
||||
"data": {
|
||||
"member": "江争达",
|
||||
"feedbacks": [
|
||||
{"type": "批评", "content": "..."},
|
||||
{"type": "建议", "content": "..."}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 2.5.2: 整合成员信息(主窗口)
|
||||
|
||||
**处理逻辑**:
|
||||
|
||||
对每个成员,整合以下信息生成章节:
|
||||
|
||||
**1. 上周完成**:
|
||||
- 从周报提取已完成任务列表(带✅标记的项)
|
||||
|
||||
**2. 进行中**:
|
||||
- 从周报提取进行中任务列表(带🔄标记的项)
|
||||
|
||||
**3. 收到的反馈/学习建议**:
|
||||
- 从并行Agent返回结果中匹配该成员的反馈
|
||||
- 如无反馈则显示"- 无"
|
||||
|
||||
**4. 下周任务**:
|
||||
- 从 `next_week_tasks` 筛选该成员负责的任务
|
||||
- 合并周报"下周计划"中的任务(语义去重)
|
||||
- 按优先级排序:P0 → P1 → P2
|
||||
- 格式:`- [ ] 🔴 P0|任务名称`(P0任务加红点,无空格)
|
||||
|
||||
**生成格式**:
|
||||
- 每个成员一个四级标题
|
||||
- 四个子部分按上述顺序排列
|
||||
|
||||
---
|
||||
|
||||
### 步骤 2.6: 生成"三、会议总结"
|
||||
|
||||
**核心原则**:提取决策 + 归纳总结
|
||||
|
||||
#### 2.6.1: 提取关键决策(调用Agent)
|
||||
|
||||
**操作**:
|
||||
```python
|
||||
Task(
|
||||
subagent_type="transcript_searcher",
|
||||
description="提取决策事项",
|
||||
prompt="""提取会议中的所有关键决策。
|
||||
|
||||
特征词:"决定"、"确定"、"采用"、"要求"、"必须"、"不准"
|
||||
|
||||
请提取决策事项,包括:
|
||||
- 决策内容
|
||||
- 决策上下文
|
||||
|
||||
返回JSON格式(类型3:提取决策事项)。
|
||||
"""
|
||||
)
|
||||
```
|
||||
|
||||
**Agent返回**(实际数据在`data`字段内):
|
||||
```json
|
||||
{
|
||||
"search_intent": "提取决策事项",
|
||||
"matched_blocks": [3, 6],
|
||||
"data": {
|
||||
"decisions": [
|
||||
{
|
||||
"decision": "采用Claude Code Skill架构",
|
||||
"context": "Deepresearch框架选型讨论"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 2.6.2: 归纳总结(主窗口)
|
||||
|
||||
**处理逻辑**:
|
||||
|
||||
**1. 核心议题**:
|
||||
- 从 `next_week_tasks` 提取项目名称
|
||||
- 统计高频项目(简化项目名,提取核心关键词)
|
||||
- 选取出现频率最高的前3个项目
|
||||
- 用顿号连接
|
||||
|
||||
**2. 关键决策**:
|
||||
- 直接使用Agent提取的决策列表
|
||||
- 按序号格式化输出
|
||||
|
||||
**3. 下周工作重点**:
|
||||
- 从 `next_week_tasks` 筛选所有P0任务
|
||||
- 按序号列表格式输出
|
||||
|
||||
**生成格式**:
|
||||
- 章节标题:## 三、会议总结
|
||||
- 三个子部分:核心议题、关键决策、下周工作重点
|
||||
|
||||
---
|
||||
|
||||
## Phase 3: 最终输出
|
||||
|
||||
### 步骤 3.1: 组装完整文档
|
||||
|
||||
**操作**:
|
||||
- 按顺序拼接所有生成的章节
|
||||
- 标题格式:# 工程类会议纪要-{日期}-第X次周会
|
||||
- 章节顺序:
|
||||
1. 一、会议信息
|
||||
2. 二、工作内容(包含4个子章节)
|
||||
3. 三、会议总结
|
||||
- 添加页脚信息:纪要整理人、纪要时间、下次会议时间
|
||||
|
||||
### 步骤 3.2: 写入文件
|
||||
|
||||
**操作**:
|
||||
- 确定文件名:`工程类会议纪要_{日期}_第X次周会.md`
|
||||
- 输出路径:`D:\AA_Work\skills合集\AIEC-团队开发规范Skills\.claude\skills\meeting-minutes-generator-v1\output\`
|
||||
- 使用Write工具写入文件
|
||||
|
||||
### 步骤 3.3: 返回结果
|
||||
|
||||
**返回给用户**:
|
||||
- 显示完成状态
|
||||
- 汇总统计信息:
|
||||
- 会议时间
|
||||
- 参会人数
|
||||
- P0任务数
|
||||
- 问题讨论数
|
||||
- 下周任务总数
|
||||
- 显示输出文件路径
|
||||
|
||||
---
|
||||
|
||||
## Phase 4: 学习研究类会议纪要生成
|
||||
|
||||
> ⚠️ **仅当 `learning_projects` 非空时执行本阶段**
|
||||
|
||||
### 步骤 4.1: 提取学习研究内容(调用 Agent)
|
||||
|
||||
**操作**:
|
||||
```python
|
||||
Task(
|
||||
subagent_type="transcript_searcher",
|
||||
description="提取学习研究讨论",
|
||||
prompt=f"""提取会议中的学习研究类讨论内容。
|
||||
|
||||
学习研究类项目列表:
|
||||
{json.dumps(learning_projects, ensure_ascii=False)}
|
||||
|
||||
请为每个项目提取:
|
||||
- 议题标题(会议中讨论的主题)
|
||||
- 分享人(语义推断)
|
||||
- 背景与目的
|
||||
- 核心议题概述
|
||||
- 关键讨论成果(Q&A、反馈、共识)
|
||||
- 下一步研究方向
|
||||
|
||||
注意:
|
||||
1. has_library_file=true 的项目,核心内容从资料库提取
|
||||
2. has_library_file=false 的项目,从会议转写上下文推断
|
||||
3. 资料库路径已固化,Agent 自行读取
|
||||
|
||||
返回JSON格式(类型5:提取学习研究内容)。
|
||||
"""
|
||||
)
|
||||
```
|
||||
|
||||
**Agent 返回**:
|
||||
```json
|
||||
{
|
||||
"search_intent": "提取学习研究内容",
|
||||
"matched_blocks": [2, 5],
|
||||
"data": {
|
||||
"topics": [
|
||||
{
|
||||
"title": "Claude Code Skill开发规范",
|
||||
"presenter": "闫旭隆",
|
||||
"background": "...",
|
||||
"overview": "...",
|
||||
"discussions": ["Q1...", "A1..."],
|
||||
"next_steps": ["方向1", "方向2"]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 步骤 4.2: 整合生成纪要(主窗口)
|
||||
|
||||
**处理逻辑**:
|
||||
1. **会议信息**:复用 Phase 2.1 的数据
|
||||
2. **学习研究内容**:遍历 Agent 返回的 `data.topics`,按模板格式化
|
||||
|
||||
**输出格式**(每个议题):
|
||||
```markdown
|
||||
### {序号}. {title} ({presenter})
|
||||
|
||||
**背景与目的:**
|
||||
- {background}
|
||||
|
||||
**核心议题概述:**
|
||||
- {overview}
|
||||
|
||||
**关键讨论成果:**
|
||||
- {discussions 列表}
|
||||
|
||||
**下一步研究方向:**
|
||||
- {next_steps 列表}
|
||||
```
|
||||
|
||||
### 步骤 4.3: 输出学习研究类纪要文件
|
||||
|
||||
**操作**:
|
||||
- 确定文件名:`学习研究类会议纪要_{日期}_第X次周会.md`
|
||||
- 输出路径:`D:\AA_Work\skills合集\AIEC-团队开发规范Skills\.claude\skills\meeting-minutes-generator-v1\output\`
|
||||
- 使用 Write 工具写入文件
|
||||
|
||||
**返回给用户**:
|
||||
- 显示学习研究类纪要完成状态
|
||||
- 显示议题数量
|
||||
- 显示输出文件路径
|
||||
|
||||
---
|
||||
|
||||
## Phase 5: Q&A资源库类会议纪要生成
|
||||
|
||||
> ⚠️ **二次提取产物**:在 Phase 3(工程类)和 Phase 4(学习研究类)之后执行
|
||||
>
|
||||
> **依赖**:已生成的工程类会议纪要(必需)
|
||||
|
||||
### 前置检查
|
||||
|
||||
**操作**:
|
||||
1. 检查 `output/` 目录下是否存在本次会议的工程类纪要文件
|
||||
2. 如不存在 → 提示用户先生成工程类纪要,跳过 Phase 5
|
||||
3. 如存在 → 继续执行
|
||||
|
||||
---
|
||||
|
||||
### 步骤 5.1: 复用会议信息(主窗口)
|
||||
|
||||
**数据来源**:已生成的工程类会议纪要
|
||||
|
||||
**操作**:
|
||||
1. 读取工程类纪要文件
|
||||
2. 提取"一、会议信息"章节内容
|
||||
3. 直接复用,格式保持一致
|
||||
|
||||
**无需Agent**,主窗口直接处理 ✅
|
||||
|
||||
---
|
||||
|
||||
### 步骤 5.2: 提取工作问题 Q&A(主窗口)
|
||||
|
||||
**核心原则**:从已生成的纪要文件中提取,非原始转写
|
||||
|
||||
#### 5.2.1: 从工程类纪要提取问题
|
||||
|
||||
**操作**:
|
||||
1. 定位"### 2. 重点项目问题及解决方案"章节
|
||||
2. 解析每个问题块:
|
||||
- 问题标题(作为项目名称)
|
||||
- 问题描述(精简为主要问题)
|
||||
- 解决方案列表
|
||||
|
||||
#### 5.2.2: 从学习研究类纪要提取 Q&A(可选)
|
||||
|
||||
**操作**(如学习研究类纪要存在):
|
||||
1. 定位每个议题的"关键讨论成果"部分
|
||||
2. 识别 Q&A 格式内容
|
||||
|
||||
#### 5.2.3: 合并去重
|
||||
|
||||
**处理逻辑**:
|
||||
- 语义匹配(相似度 > 80%)视为同一问题,合并解决方案
|
||||
- 按项目分组,同一项目多个问题归类在一起
|
||||
- 格式化输出:`### {序号}. 项目名称:{project_name}`
|
||||
|
||||
**无需Agent**,主窗口直接处理 ✅
|
||||
|
||||
---
|
||||
|
||||
### 步骤 5.3: 提取重点工作方法(调用Agent + 主窗口)
|
||||
|
||||
**核心原则**:会议转写 + 周报,两者结合
|
||||
|
||||
#### 5.3.1: 从会议转写提取方法分享(调用Agent)
|
||||
|
||||
**操作**:
|
||||
```python
|
||||
Task(
|
||||
subagent_type="transcript_searcher",
|
||||
description="提取工作方法",
|
||||
prompt="""提取会议中分享的工作方法、技巧、最佳实践。
|
||||
|
||||
识别特征:
|
||||
- 方法论讲解("方法是..."、"技巧是...")
|
||||
- 经验分享("我的做法是..."、"建议...")
|
||||
- 总结性语句("总结一下..."、"关键是...")
|
||||
|
||||
需提取字段:
|
||||
- 方法名称(简短标题)
|
||||
- 方法描述(详细说明)
|
||||
- 提出人(从上下文推断)
|
||||
- 相关项目
|
||||
|
||||
返回JSON格式(类型6:提取工作方法)。
|
||||
"""
|
||||
)
|
||||
```
|
||||
|
||||
**Agent返回**(实际数据在`data`字段内):
|
||||
```json
|
||||
{
|
||||
"search_intent": "提取工作方法",
|
||||
"matched_blocks": [2, 5],
|
||||
"data": {
|
||||
"methods": [
|
||||
{
|
||||
"name": "语义分析替代说话人标记",
|
||||
"description": "通过分析发言内容的语义特征来判断发言者",
|
||||
"presenter": "连云波",
|
||||
"related_project": "会议纪要信息提取"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 5.3.2: 从周报提取经验总结(主窗口)
|
||||
|
||||
**操作**:
|
||||
- 遍历 `members_data` 中"详细工作内容"
|
||||
- 识别方法论/经验总结内容(带"方法"、"技巧"、"经验"等关键词的段落)
|
||||
|
||||
#### 5.3.3: 合并整理(主窗口)
|
||||
|
||||
**处理逻辑**:
|
||||
- 将会议方法与周报方法进行语义匹配
|
||||
- 相似方法合并,补充细节
|
||||
- 为每个方法生成完整结构:
|
||||
- 方法标题
|
||||
- 方法描述(合并会议详细讲解 + 周报简要描述)
|
||||
- 适用场景(从会议讨论上下文推断)
|
||||
- 关键要点(提炼为3-5条)
|
||||
|
||||
**输出格式**:
|
||||
```markdown
|
||||
- **方法 {序号}:{方法标题}**
|
||||
- {方法描述}
|
||||
- 适用场景:{场景描述}
|
||||
- 关键要点:
|
||||
- {要点1}
|
||||
- {要点2}
|
||||
- {要点3}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 步骤 5.4: 输出Q&A资源库类纪要文件
|
||||
|
||||
**操作**:
|
||||
1. 组装所有章节:
|
||||
- 一、会议信息(复用)
|
||||
- 二、工作问题 Q&A
|
||||
- 三、重点工作方法
|
||||
2. 确定文件名:`Q&A资源库类会议纪要_{日期}_第X次周会.md`
|
||||
3. 输出路径:`D:\AA_Work\skills合集\AIEC-团队开发规范Skills\.claude\skills\meeting-minutes-generator-v1\output\`
|
||||
4. 使用 Write 工具写入文件
|
||||
|
||||
**特殊情况处理**:
|
||||
| 情况 | 处理方式 |
|
||||
|------|---------|
|
||||
| 工程类纪要无问题章节 | Q&A章节输出"本次会议无记录的问题讨论" |
|
||||
| 会议中无方法分享 | 若周报有经验总结则使用,否则输出"本次会议无记录的方法分享" |
|
||||
|
||||
**返回给用户**:
|
||||
- 显示Q&A资源库类纪要完成状态
|
||||
- 显示Q&A数量、方法数量
|
||||
- 显示输出文件路径
|
||||
|
||||
---
|
||||
|
||||
## 关键辅助函数
|
||||
|
||||
### is_same_task(task1, task2)
|
||||
判断两个任务是否为同一任务(语义相似度 > 85%)
|
||||
|
||||
### is_similar_problem(desc1, desc2)
|
||||
判断两个问题是否相似(语义相似度 > 80%)
|
||||
|
||||
### merge_assignees(list1, list2)
|
||||
合并负责人列表并去重
|
||||
|
||||
### extract_project_name(task_name)
|
||||
从任务名称提取核心项目关键词
|
||||
|
||||
---
|
||||
|
||||
## 项目类型区分规则
|
||||
|
||||
**核心问题**:周报中没有"学习类"/"工程类"标签,两类项目都混在"P0任务完成情况"和"详细工作内容"中。
|
||||
|
||||
**区分方法**:
|
||||
1. **资料库指引** ⭐:项目在 `input/成员本周资料库/` 下有对应md文件 → 学习研究类
|
||||
2. **语义判断**:根据任务性质(知识获取/技能提升 vs 产出交付/功能实现)语义判断
|
||||
|
||||
**背景**:成员会以周报为顶层,讲到学习内容时打开资料库里的md进行分享,资料库中的项目通常是学习研究类。
|
||||
|
||||
---
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **优先级一致性**:
|
||||
- 项目进展:仅P0
|
||||
- 下周安排:P0/P1/P2按顺序
|
||||
- 成员进展:每人下周任务按P0→P1→P2排序
|
||||
|
||||
2. **数据互补原则**:
|
||||
- 问题:会议详细分析 + 周报初步描述
|
||||
- 任务:会议分配 + 周报计划,冲突时会议优先
|
||||
|
||||
3. **语义识别**:
|
||||
- 转写说话人标记不可靠
|
||||
- 责任人、优先级、反馈对象都需语义推断
|
||||
|
||||
4. **并行执行**:
|
||||
- 仅步骤2.5成员反馈提取并行(4-5个Agents)
|
||||
- 其他步骤串行执行(有数据依赖)
|
||||
|
||||
5. **默认值处理**:
|
||||
- 截止时间:会议日期 + 7天
|
||||
- 优先级:会议未提及的周报任务默认P1
|
||||
|
||||
6. **Agent返回数据解析**:
|
||||
- 所有transcript_searcher返回的JSON结构为:`{search_intent, matched_blocks, data}`
|
||||
- 实际业务数据在`data`字段内,需通过`result.data.xxx`访问
|
||||
- 示例:`result.data.problems`、`result.data.tasks`、`result.data.decisions`
|
||||
|
||||
---
|
||||
|
||||
## 根本逻辑文档
|
||||
|
||||
本 Skill 的详细执行逻辑(包括每个章节的数据来源、处理规则、输出格式),有任何问题请查阅:
|
||||
- **工程类**:`references/detailed_logic.md`
|
||||
- **学习研究类**:`references/学习研究类会议纪要生成逻辑.md`
|
||||
- **Q&A资源库类**:`references/Q&A资源库类会议纪要生成逻辑.md`
|
||||
Reference in New Issue
Block a user