Imported from openyida/openyida (
yida-skills/skills/yida-flash-note-to-prd/SKILL.md). Install upstream withnpx skills add openyida/openyida --skill yida-flash-note-to-prd. Copyright stays with the author.
闪记和会议内容转 PRD
严格禁止 (NEVER DO)
- 不要在没有闪记内容的情况下强行生成 PRD,必须等待用户提供闪记文本、图片或链接
- 不要将生成的 PRD 写入项目根目录,必须写入
prd/<项目名>/prd.md - 不要忽略闪记中的 A1 结构化摘要(会议摘要、待办事项、决策结论),这是最高优先级信息
- 不要生成泛泛的会议纪要,输出必须是可直接驱动宜搭开发的结构化 PRD
严格要求 (MUST DO)
- 必须自动识别输入类型:文本闪记 / 图片闪记 / 闪记链接,分别处理
- 用户只提供
taskUuid且要求转 PRD 时,必须先加载yida-tingji读取听记内容,再用读取结果生成 PRD - 必须提取会议元信息(标题、参会人、时间)并写入 PRD 上下文
- 生成的 PRD 必须包含:MVP 边界、用户角色与权限、核心用户旅程、功能模块、字段设计表、流程/状态机、数据关联与约束、交互验收标准、报表需求、OpenYida 落地约束、待确认事项
- 生成完成后必须提示用户确认 PRD 内容;用户确认要继续搭应用时,交给
yida-app
适用场景
| 用户意图 | 触发条件 |
|---|---|
| 闪记转需求文档 | 用户发送闪记文本/图片、提到"闪记"、"会议纪要"、"会议记录" |
| 快速启动开发 | 从会议记录直接生成可执行的 PRD |
| taskUuid 转 PRD | 先由 yida-tingji 读取听记,再处理已有内容 |
触发条件
正向触发:
- 用户发送闪记文本/图片
- 用户提到"闪记"、"会议纪要"、"会议记录"、"闪记转需求"
- 用户发送钉钉闪记链接(
shanji.dingtalk.com或alidocs.dingtalk.com) - 用户口述会议要点,要求整理成需求
⚠️ PRD 生成后还需
yida-app流程创建应用;本技能不处理非需求类文档(技术文档、代码文件)。
异常处理
| 异常场景 | 处理方式 |
|---|---|
| 闪记内容为空或过短 | 提示用户补充更多会议内容,至少需要包含功能需求描述 |
| 图片识别失败 | 提示用户重新上传清晰图片,或直接粘贴闪记文本 |
| 闪记链接无法访问 | 提示用户在钉钉中打开链接,复制全文后粘贴 |
| PRD 文件写入失败 | 检查 prd/ 目录是否存在,确认文件系统权限 |
| 生成的 PRD 质量不佳 | 展示待确认事项,引导用户补充关键信息后重新生成 |
Agent 错误处理策略
当 Agent 执行本技能遇到错误时,必须遵循以下默认行为:
| 错误类型 | 默认处理策略 |
|---|---|
| 输入内容为空 | 停止执行,主动询问用户提供闪记内容(文本/图片/链接) |
| 输入内容过短(<100 字) | 提示用户内容可能不足以生成完整 PRD,询问是否继续或补充 |
| 图片识别失败 | 提示用户重新上传清晰图片,或改用文本粘贴方式 |
| 闪记链接无法访问 | 引导用户在钉钉中打开链接,复制全文后粘贴 |
| 文件写入失败 | 检查目录权限,尝试创建 prd/ 目录后重试 |
| 生成结果不完整 | 展示已生成内容,询问用户是否需要补充或调整 |
| 未知错误 | 停止执行,完整展示错误信息,建议用户反馈问题 |
概述
本技能将钉钉闪记、会议记录、需求讨论文本或截图转成结构化 PRD。生成结果写入 prd/<项目名>/prd.md,用户确认后再交给 yida-app 执行应用搭建或补齐。
核心理念:PRD 只写业务语义和验收口径,便于后续技能读取并执行;不要在 PRD 中编造
appType、formUuid、fieldId等真实 ID。
核心能力:
- 自动识别闪记输入:用户直接发送闪记文本或图片,AI 智能体自动触发本技能
- 智能识别钉钉 A1 / 闪记生成的结构化摘要(会议摘要、待办事项、决策结论等),作为高优先级信息
- 自动提取会议元信息(标题、参会人、时间、时长等),丰富 PRD 上下文
- 识别发言人角色标注(如"张三(产品经理)"),帮助区分不同角色视角
- 生成可直接驱动开发的结构化 PRD,包含 MVP 边界、角色权限、核心旅程、功能模块、字段设计表、流程/状态机、数据约束、验收标准、报表需求和待确认事项
何时使用
当以下情况发生时,自动触发本技能(无需用户明确说"转 PRD"):
- 用户发送了一段会议纪要/闪记文本(包含发言人对话、讨论内容等)
- 用户发送了闪记截图/图片(钉钉闪记的图文纪要截图)
- 用户发送了钉钉闪记链接(
shanji.dingtalk.com或alidocs.dingtalk.com) - 用户提到"闪记"、"会议纪要"、"会议记录转PRD"、"闪记转需求"等关键词
- 用户口述会议要点,要求整理成需求
⚡ AI 智能体自动执行流程(核心)
重要:本技能的主要执行方式是 AI 智能体直接处理,而非调用 CLI 命令。AI 智能体自身就是大模型,可以直接完成闪记内容理解和 PRD 生成。
当识别到用户输入为闪记/会议纪要内容时,按以下流程自动执行:
[Step 1] 识别输入类型
- 图片 → 用视觉能力识别图片中的所有文字内容
- 文本 → 直接使用
- 闪记链接 → 提示用户复制闪记全文后粘贴
↓
[Step 2] 内容预处理(AI 智能体自行完成,参照预处理规则)
- 去除时间戳、口语填充词、重复标点
- 识别会议元信息(标题、参会人、时间等)
- 识别 A1 生成的结构化摘要段落(📋 会议摘要、✅ 待办事项、📌 决策结论等)
- 识别发言人及其角色标注
↓
[Step 3] 生成结构化 PRD
- 按照「PRD 输出模板」和「内容提取规则」生成
- AI 智能体直接生成,无需调用外部 AI 接口
- 严格遵循字段设计规则(使用宜搭标准字段类型)
- 每个模块写清功能描述、交互规则、业务规则、字段设计表和验收标准
- PRD 必须包含足够的业务语义信息,使后续技能可直接读取执行
↓
[Step 4] 写入文件 prd/<项目名>/prd.md
↓
[Step 5] 输出摘要,询问用户是否需要调整
- 展示:项目名称、功能模块数、待确认事项数
- 询问:是否需要修改或补充
- 用户确认继续搭建时,交给 `yida-app`
图片输入处理规则
当用户发送图片时:
- 使用视觉能力完整识别图片中的所有文字内容,包括标题、正文、表格、列表等
- 注意识别图片中的结构化布局(如分栏、卡片、流程图等),保留其逻辑关系
- 识别图片中的标签/标注(如 Emoji 标识、颜色标注、高亮文字等),这些通常是重点信息
- 将识别结果作为闪记文本,进入 Step 2 继续处理
闪记链接处理规则
以下 URL 模式自动识别为钉钉闪记链接:
https://shanji.dingtalk.com/app/transcribes/...— 钉钉闪记(AI 听记)分享链接https://alidocs.dingtalk.com/...— 钉钉文档中的闪记
钉钉闪记页面是 SPA 应用,需要登录态才能获取数据。当用户提供闪记链接时:
- 提示用户在钉钉中打开链接,复制闪记全文后粘贴
- 或导出为 .txt 文件后告知文件路径
CLI 命令(可选的自动化工具)
以下 CLI 命令是可选的自动化工具,适用于批量处理或脚本化场景。日常使用中,直接将闪记内容发给 AI 智能体即可。
flash-to-prd — 闪记转 PRD
# 从文件读取闪记内容并生成 PRD
openyida flash-to-prd --file <闪记文件路径> [--name <项目名>]
# 从标准输入读取闪记内容
cat meeting.txt | openyida flash-to-prd --name <项目名>
| 参数 | 必填 | 说明 |
|---|---|---|
--file |
否 | 闪记文本文件路径(支持 .txt / .md) |
--name |
否 | 项目名称,用于生成 PRD 文件名(默认从闪记内容中提取) |
--max-tokens |
否 | AI 最大输出 token 数(默认 8000) |
输出:生成 prd/<项目名>/prd.md 文件
处理流程
[Step 1] 接收闪记内容(文本/文件/链接)
↓
[Step 2] 预处理(preprocessFlashNote):
- 去除时间戳、口语填充词、重复标点
- 合并同一发言人的连续发言
- 清理多余空行
↓
[Step 3] 会议识别(新增能力):
- extractMeetingMeta:提取会议元信息(标题、参会人、时间、时长等)
- extractA1Summary:识别钉钉 A1 生成的结构化摘要段落
- extractSpeakers:识别发言人及其角色标注
- buildMeetingContext:组装会议上下文信息
↓
[Step 4] 分段判断(splitIntoSegments):
- ≤ 6000 字 → 单段模式
- > 6000 字 → 按段落边界智能分段
↓
[Step 5] AI 提取(buildFlashNoteToPrdPrompt):
- 会议上下文作为高优先级信息注入 Prompt
- 单段模式:三层 Prompt 架构,直接输出 Markdown PRD
- 多段模式:每段输出 JSON 结构化数据
↓
[Step 6](仅多段模式)合并去重(buildMergePrompt):
- 合并各段 JSON 结果
- 去重、解决冲突
- 生成完整 Markdown PRD
↓
[Step 7] 输出到 prd/<项目名>/prd.md
↓
[Step 8] 展示 PRD 摘要,询问用户确认或调整
PRD 输出模板
📖 生成的 PRD 文件标准结构详见 references/flash-note-prd-template.md。
生成规则参考
📖 完整的三层 Prompt 架构、Prompt 原文、分段处理策略和调用方式详见 references/flash-note-prompt.md。
闪记内容预处理规则
在发送给 AI 之前,对闪记原文进行预处理(实现在 build-flash-note-prompt.js 的 preprocessFlashNote 函数中):
| 处理步骤 | 说明 | 正则/规则 |
|---|---|---|
| 去除时间戳 | 移除 [00:01:23] 等时间标记 |
/\[?\d{1,2}:\d{2}(?::\d{2})?\]?\s*/g |
| 去除口语填充词 | 移除"嗯"、"那个"、"就是说"、"对对对"等口语化表达 | 预定义填充词列表匹配 |
| 合并连续空行 | 多个空行合并为单个换行 | /\n{3,}/g → \n\n |
| 去除重复标点 | 连续重复标点合并为一个 | /([,。!?,\.!?])\1+/g |
| 合并连续发言 | 同一人连续多段发言合并为一段(用逗号连接) | 按发言人前缀匹配合并 |
| 保留发言人标识 | 保留"张三:"等发言人前缀,帮助 AI 理解上下文 | 支持中英文冒号格式 |
会议识别能力(v2.0 新增)
预处理完成后,自动执行以下会议识别步骤:
会议元信息提取(extractMeetingMeta)
从闪记头部提取结构化的会议元信息:
| 识别字段 | 匹配关键词 | 示例 |
|---|---|---|
| 会议标题 | 会议主题/标题/名称、Meeting Title/Topic | 会议主题:产品需求评审会 |
| 会议时间 | 会议时间/日期、Date/Time | 会议时间:2026-03-24 14:00 |
| 会议时长 | 会议时长/时长、Duration | 会议时长:45 分钟 |
| 参会人员 | 参会人/与会人/出席、Participants/Attendees | 参会人员:张三、李四、王五 |
| 主持人 | 主持人/组织者/发起人、Organizer/Host | 主持人:张三 |
| 会议地点 | 会议地点/位置、Location | 会议地点:3 号会议室 |
钉钉 A1 摘要识别(extractA1Summary)
自动识别钉钉 A1 / 闪记 AI 生成的结构化摘要段落,支持 Emoji 标识和纯文本标识两种格式:
| 段落类型 | Emoji 标识 | 纯文本标识 | 说明 |
|---|---|---|---|
| 会议摘要 | 📋 / 📝 | 【会议摘要】 | AI 生成的会议内容总结 |
| 待办事项 | ✅ / ☑️ | 【待办事项】 | 会议中确定的行动项 |
| 决策结论 | 📌 / 🔑 / 💡 | 【决策结论】 | 会议中达成的决策 |
| 讨论要点 | 📊 / 📈 | 【讨论要点】 | 关键讨论内容摘要 |
| 后续跟进 | ⏭️ / 👉 | 【后续跟进】 | 下一步计划和跟进事项 |
优先级说明:A1 摘要段落被视为高优先级信息,会优先注入生成上下文,帮助 AI 更准确地提取需求。
发言人角色识别(extractSpeakers)
自动识别闪记中发言人的角色标注,支持以下格式:
张三(产品经理):... → 识别为 张三,角色:产品经理
李四(技术负责人):... → 识别为 李四,角色:技术负责人
王五[设计师]:... → 识别为 王五,角色:设计师
赵六:... → 识别为 赵六,角色:未标注
识别到的发言人角色信息会注入生成上下文,帮助 AI 区分不同角色视角的发言。
PRD 输出要求
生成 prd/<项目名>/prd.md 时,写清以下内容;缺失时写入「待确认事项」,不要假装已经明确:
- 第一版必须做什么,哪些放到二期。
- 谁使用主入口,谁维护后台表,谁审批、调度或查看报表。
- 用户从进入页面到完成关键任务的步骤。
- 表单之间如何关联,哪些字段唯一,哪些字段只能后台维护。
- 状态有哪些,谁能改,允许从哪个状态流转到哪个状态。
- 时间冲突、重复提交、并发提交、取消、退回、失败如何处理。
- 用可验证标准描述验收口径。
- PRD 只写业务语义,不写
appType、formUuid、fieldId;真实 ID 写入.cache/<项目名>-schema.json。
前置依赖
- Node.js ≥ 16
- 已登录宜搭(存在有效
.cache/auth-token-<env>.json),用于调用 AI 接口
注意事项
- 闪记质量影响 PRD 质量:如果闪记内容过于碎片化或口语化严重,生成的 PRD 可能需要用户手动补充完善
- 长文本分段处理:闪记内容超过 6000 字时,建议分段提取后合并,避免超出 AI 模型 token 限制
- 待确认事项必须处理:PRD 中的"待确认事项"需要用户逐一确认后,才能进入开发阶段
- PRD 不记录技术 ID:PRD 文档只记录业务语义信息(字段名、类型、说明),
formUuid、fieldId等技术 ID 写入.cache/临时文件 - 支持迭代优化:用户可以对生成的 PRD 提出修改意见,AI 会基于反馈重新调整 PRD 内容
- 本技能不读写 memory:生成的 PRD 输出到
prd/<项目名>/prd.md文件,不依赖跨会话的 memory 状态