name: yida-flash-note-to-prd description: 闪记转 PRD。从钉钉闪记(AI 听记)、会议记录、需求文档中提取产品需求,生成结构化的 PRD 文档。支持文本、图片、链接三种输入方式,三层 Prompt 架构确保高质量提取。不适用于:直接创建宜搭应用(PRD 生成后还需 yida-app 流程),或处理非需求类文档(如技术文档、代码文件)。
钉钉闪记转高质量 Prompt 技能
严格禁止 (NEVER DO)
- 不要在没有闪记内容的情况下强行生成 PRD,必须等待用户提供闪记文本、图片或链接
- 不要将生成的 prompt 写入项目根目录,必须写入
prd/<项目名>.md - 不要忽略闪记中的 A1 结构化摘要(会议摘要、待办事项、决策结论),这是最高优先级信息
- 不要生成传统产品文档格式,输出必须是可直接驱动宜搭开发的结构化 prompt
严格要求 (MUST DO)
- 必须自动识别输入类型:文本闪记 / 图片闪记 / 闪记链接,分别处理
- 必须提取会议元信息(标题、参会人、时间)并写入 prompt 上下文
- 生成的 prompt 必须包含:MVP 边界、用户角色与权限、核心用户旅程、功能模块、字段设计表、流程/状态机、数据关联与约束、交互验收标准、报表需求、OpenYida 落地约束、待确认事项
- 生成完成后必须提示用户确认 PRD 内容,再进入开发流程
适用场景
| 用户意图 | 触发条件 |
|---|---|
| 闪记转需求文档 | 用户发送闪记文本/图片、提到"闪记"、"会议纪要"、"会议记录" |
| 快速启动开发 | 从会议记录直接生成可执行的开发 prompt |
触发条件
正向触发:
- 用户发送闪记文本/图片
- 用户提到"闪记"、"会议纪要"、"会议记录"、"闪记转需求"
- 用户发送钉钉闪记链接(
shanji.dingtalk.com或alidocs.dingtalk.com) - 用户口述会议要点,要求整理成需求
不适用场景(不要触发):
- 直接创建宜搭应用(PRD 生成后还需
yida-app流程) - 处理非需求类文档(如技术文档、代码文件)
- 用户已有完整 PRD,无需从闪记生成
异常处理
| 异常场景 | 处理方式 |
|---|---|
| 闪记内容为空或过短 | 提示用户补充更多会议内容,至少需要包含功能需求描述 |
| 图片识别失败 | 提示用户重新上传清晰图片,或直接粘贴闪记文本 |
| 闪记链接无法访问 | 提示用户在钉钉中打开链接,复制全文后粘贴 |
| PRD 文件写入失败 | 检查 prd/ 目录是否存在,确认文件系统权限 |
| 生成的 PRD 质量不佳 | 展示待确认事项,引导用户补充关键信息后重新生成 |
Agent 错误处理策略
当 Agent 执行本技能遇到错误时,必须遵循以下默认行为:
| 错误类型 | 默认处理策略 |
|---|---|
| 输入内容为空 | 停止执行,主动询问用户提供闪记内容(文本/图片/链接) |
| 输入内容过短(<100 字) | 提示用户内容可能不足以生成完整 PRD,询问是否继续或补充 |
| 图片识别失败 | 提示用户重新上传清晰图片,或改用文本粘贴方式 |
| 闪记链接无法访问 | 引导用户在钉钉中打开链接,复制全文后粘贴 |
| 文件写入失败 | 检查目录权限,尝试创建 prd/ 目录后重试 |
| 生成结果不完整 | 展示已生成内容,询问用户是否需要补充或调整 |
| 未知错误 | 停止执行,完整展示错误信息,建议用户反馈问题 |
概述
本技能将钉钉闪记(会议录音转文字的会议纪要、AI 听记图文纪要)自动识别并转化为高质量的结构化 prompt。生成的 prompt 写入 prd/<项目名>.md,可直接驱动后续宜搭应用开发流程(创建应用 → 创建表单 → 编写页面 → 发布上线)。
核心理念:
prd/<项目名>.md不是传统的产品文档,而是一段精心结构化的 prompt——它包含了足够的业务语义信息(功能模块、字段设计、流程设计、报表需求等),使得后续技能可以直接读取并执行开发。
核心能力:
- 自动识别闪记输入:用户直接发送闪记文本或图片,AI 智能体自动触发本技能
- 智能识别钉钉 A1 / 闪记生成的结构化摘要(会议摘要、待办事项、决策结论等),作为高优先级信息
- 自动提取会议元信息(标题、参会人、时间、时长等),丰富 prompt 上下文
- 识别发言人角色标注(如"张三(产品经理)"),帮助区分不同角色视角
- 生成可直接驱动开发的结构化 prompt,包含 MVP 边界、角色权限、核心旅程、功能模块、字段设计表、流程/状态机、数据约束、验收标准、报表需求和待确认事项
何时使用
当以下情况发生时,自动触发本技能(无需用户明确说"转 PRD"):
- 用户发送了一段会议纪要/闪记文本(包含发言人对话、讨论内容等)
- 用户发送了闪记截图/图片(钉钉闪记的图文纪要截图)
- 用户发送了钉钉闪记链接(
shanji.dingtalk.com或alidocs.dingtalk.com) - 用户提到"闪记"、"会议纪要"、"会议记录转PRD"、"闪记转需求"等关键词
- 用户口述会议要点,要求整理成需求
⚡ AI 智能体自动执行流程(核心)
重要:本技能的主要执行方式是 AI 智能体直接处理,而非调用 CLI 命令。AI 智能体自身就是大模型,可以直接完成闪记内容的理解和高质量 prompt 生成。
当识别到用户输入为闪记/会议纪要内容时,按以下流程自动执行:
[Step 1] 识别输入类型
- 图片 → 用视觉能力识别图片中的所有文字内容
- 文本 → 直接使用
- 闪记链接 → 提示用户复制闪记全文后粘贴
↓
[Step 2] 内容预处理(AI 智能体自行完成,参照预处理规则)
- 去除时间戳、口语填充词、重复标点
- 识别会议元信息(标题、参会人、时间等)
- 识别 A1 生成的结构化摘要段落(📋 会议摘要、✅ 待办事项、📌 决策结论等)
- 识别发言人及其角色标注
↓
[Step 3] 生成高质量结构化 prompt
- 按照「Prompt 输出模板」和「内容提取规则」生成
- AI 智能体直接生成,无需调用外部 AI 接口
- 严格遵循字段设计规则(使用宜搭标准字段类型)
- 严格遵循质量标准(每个模块含功能描述、交互规则、业务规则、字段设计表和验收标准)
- 生成的 prompt 必须包含足够的业务语义信息,使后续技能可直接读取执行
↓
[Step 4] 写入文件 prd/<项目名>.md
↓
[Step 5] 输出摘要,询问用户是否需要调整
- 展示:项目名称、功能模块数、待确认事项数
- 询问:是否需要修改或补充
- 提示:可继续执行宜搭应用开发流程(prompt 已就绪)
图片输入处理规则
当用户发送图片时:
- 使用视觉能力完整识别图片中的所有文字内容,包括标题、正文、表格、列表等
- 注意识别图片中的结构化布局(如分栏、卡片、流程图等),保留其逻辑关系
- 识别图片中的标签/标注(如 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/<项目名>.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/<项目名>.md
↓
[Step 8] 展示 PRD 摘要,询问用户确认或调整
Prompt 输出模板
📖 生成的 PRD 文件标准结构详见 references/flash-note-prd-template.md。
AI Prompt 设计
📖 完整的三层 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 摘要段落被视为高优先级信息,会在 Prompt 中优先注入,帮助 AI 更准确地提取需求。
发言人角色识别(extractSpeakers)
自动识别闪记中发言人的角色标注,支持以下格式:
张三(产品经理):... → 识别为 张三,角色:产品经理
李四(技术负责人):... → 识别为 李四,角色:技术负责人
王五[设计师]:... → 识别为 王五,角色:设计师
赵六:... → 识别为 赵六,角色:未标注
识别到的发言人角色信息会注入 Prompt,帮助 AI 区分不同角色视角的发言。
与其他技能配合
Prompt 生成后,可无缝衔接宜搭应用开发流程:
闪记(文本/图片)→ [本技能] → prd/<项目名>.md(高质量 prompt)
↓
[yida-create-app] → 创建应用
↓
[yida-create-form-page] → 创建表单
↓
[yida-custom-page] → 开发自定义页面
↓
[yida-publish-page] → 发布上线
| 后续技能 | 用途 | 从 prompt 中获取的信息 |
|---|---|---|
yida-create-app |
创建宜搭应用 | 项目名称 |
yida-create-form-page |
创建表单 | 字段设计(字段名、类型、必填、选项) |
yida-create-process |
配置审批流程 | 流程设计(节点、审批人、条件) |
yida-custom-page |
开发自定义页面 | 功能模块、页面布局需求 |
yida-report |
创建报表 | 数据报表需求 |
OpenYida PRD 质量门槛
生成或评审 prd/<项目名>.md 时,必须检查以下内容;缺失时写入「待确认事项」,不要假装已经明确:
| 质量项 | 必须回答的问题 |
|---|---|
| MVP 边界 | 第一版必须做什么,哪些放到二期 |
| 用户与权限 | 谁使用工作台,谁维护后台表,谁审批/调度/查看报表 |
| 核心旅程 | 用户从进入页面到完成关键任务的步骤,是否避免原生表单割裂体验 |
| 数据模型 | 表单之间如何关联,哪些字段唯一,哪些字段只能后台维护 |
| 状态机 | 状态有哪些,谁能改,允许从哪个状态流转到哪个状态 |
| 冲突与异常 | 时间冲突、重复提交、并发提交、取消/退回/失败如何处理 |
| 交互验收 | 什么叫“好用”,用可验证标准描述,如 30 秒内完成预约、冲突即时提示 |
| OpenYida 约束 | PRD 只写业务语义,不写 formUuid/fieldId;Schema ID 写入 .cache/<项目名>-schema.json |
前置依赖
- Node.js ≥ 16
- 已登录宜搭(
.cache/cookies.json存在且有效),用于调用 AI 接口
注意事项
- 闪记质量影响 PRD 质量:如果闪记内容过于碎片化或口语化严重,生成的 PRD 可能需要用户手动补充完善
- 长文本分段处理:闪记内容超过 6000 字时,建议分段提取后合并,避免超出 AI 模型 token 限制
- 待确认事项必须处理:PRD 中的"待确认事项"需要用户逐一确认后,才能进入开发阶段
- PRD 不记录技术 ID:PRD 文档只记录业务语义信息(字段名、类型、说明),
formUuid、fieldId等技术 ID 写入.cache/临时文件 - 支持迭代优化:用户可以对生成的 PRD 提出修改意见,AI 会基于反馈重新调整 PRD 内容
- 本技能不读写 memory:生成的 PRD 输出到
prd/<项目名>.md文件,不依赖跨会话的 memory 状态