--- 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`