根据上传需求文档自动生成详细的软件设计文档,包含架构、模块、接口及通信协议等内容,且关键步骤需用户确认。
Skill: 依据文档生成软件设计文档是一项面向实际任务的技能,主要用于根据上传的需求文档/技术说明,自动生成可指导开发的设计文档;用户说(任意一项):;
「依据上传的文件写软件设计」;其他明确要求生成设计文档的表达;Step 1: 识别新上传的文件;Step 2: 分析文件名,询问用户确认文件夹名;⚠️ 必须确认 ,不自行决定。
它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
根据上传的需求文档/技术说明,自动生成可指导开发的设计文档
用户说(任意一项):
执行: ls -la /root/.openclaw/media/inbound/ 筛选: 最近5分钟内上传的文件(排除临时文件) 输出: 文件列表
分析: - 提取所有文件的公共关键词 - 生成候选文件夹名(如:飞奕多联机空调集中控制和计费软件) 询问用户: "检测到 X 个文件: - file1.docx - file2.docx 建议文件夹名: XXX 确认用这个名?还是你另外起一个?"
⚠️ 必须确认,不自行决定
执行:
mkdir -p /workspace/{文件夹名}
mv /inbound/xxx.docx /workspace/{文件夹名}/
根据文件扩展名选择解析方式:
| 扩展名 | 解析方式 |
|---|---|
| .docx | unzip + 解析 document.xml |
| .doc | 提示用户转换为 docx |
| 使用 pdftotext 或提示用户 | |
| .txt / .md | 直接读取 |
| 其他 | 提示用户转换格式 |
输出: 提取的文本内容(关键章节:功能需求、技术架构、模块设计、通信协议等)
分析并总结: - 项目类型(嵌入式/Web/API/桌面应用...) - 技术栈(语言、框架、数据库...) - 核心功能模块 - 通信协议 - 存储方案 询问用户: "从文档中分析出以下信息,请确认: 项目类型: 嵌入式系统 处理器: Rockchip RK3506 编程语言: C 操作系统: Linux 通信: 4G / RS485 / 蓝牙 协议: MQTT / Modbus ... 以上正确吗?有补充或修正?"
⚠️ 必须确认,不自行假设
询问用户: "设计文档需要包含哪些章节? 可选章节: ✓ 功能需求 ✓ 系统架构 ✓ 模块设计(含接口定义) ✓ 数据结构定义 ✓ 通信协议(MQTT/Modbus/蓝牙) ✓ 存储设计(Flash分区/数据库) ✓ API设计 ✓ 接口定义 ✓ 错误处理 ✓ 部署方案 需要哪些?需要补充什么?"
⚠️ 必须确认
开始前: "好的,开始生成设计文档。预计需要3-5分钟,每分钟我会向你汇报进度。" 执行过程中(每60秒): "⏳ 正在撰写中,请稍候... - 已完成:模块设计章节 - 进度:约60% - 预计还需:2分钟" 最后: "即将完成,正在整理目录结构..."
✅ 每分钟主动发送进度,避免用户以为卡死
目录结构示例:
{项目名}/
├── DESIGN.md # 设计文档主文件
├── docs/
│ ├── 01-概述.md
│ ├── 02-功能需求.md
│ ├── 03-系统架构.md
│ ├── 04-模块设计/
│ │ ├── 通讯模块.md
│ │ ├── 协议处理模块.md
│ │ ├── 计量计费模块.md
│ │ └── 升级模块.md
│ ├── 05-通信协议.md
│ ├── 06-存储设计.md
│ └── 07-接口定义.md
├── src/
│ ├── main.c
│ ├── config/
│ │ └── config.h
│ ├── modules/
│ │ ├── comm.c / comm.h
│ │ ├── protocol.c / protocol.h
│ │ ├── billing.c / billing.h
│ │ └── upgrade.c / upgrade.h
│ └── include/
│ └── types.h
├── include/ # 头文件目录
├── docs/ # 文档目录
└── README.md
执行:
mkdir -p /workspace/{项目名}/{子目录}
touch /workspace/{项目名}/docs/01-概述.md # 创建空文件
...
内容结构:
# {项目名}软件设计文档
## 一、引言
- 编写目的
- 项目背景
- 术语定义
## 二、系统概述
- 系统目标
- 运行环境
- 技术架构
## 三、功能需求
- 设备控制功能
- 计量计费功能
- 通信功能
- ...
## 四、详细设计
- 模块划分
- 模块间接口
- 核心数据结构
- API定义
## 五、通信协议
- MQTT主题格式
- Modbus寄存器
- 蓝牙协议
## 六、存储设计
- Flash分区
- 数据结构
## 七、错误处理
- 错误码
- 告警定义
## 八、附录
- 版本历史
- 参考资料
通知用户:
"✅ 设计文档生成完成!
📁 位置: /workspace/{项目名}/DESIGN.md
📂 目录: /workspace/{项目名}/
包含内容:
- DESIGN.md (主设计文档,33KB)
- docs/ (各章节拆分文件)
- src/ (代码框架目录)
请查看,有需要修改或补充的地方告诉我。"
输入: ["飞奕多联机空调集中控制和计费软件登记技术交底文件.docx", "飞奕多联机空调集中控制和计费软件设计说明.docx"] 处理: 1. 提取最长公共子串 2. 去掉"登记技术交底文件"、"设计说明"等后缀 3. 候选: "飞奕多联机空调集中控制和计费软件" 如果无法提取: 询问用户: "你想用什么文件夹名?"
如果无法提取docx内容: 提示用户: "无法自动解析xxx.docx,请将内容粘贴给我,或转换为txt/md格式"
如果用户在任一步骤超过5分钟未回复: 发送提醒: "还在等你确认信息,请告诉我你的选择~" 超过10分钟: 发送: "我先暂停,有需要时说「继续」继续生成"
ls, mkdir, mv, touch - 文件操作unzip - 解析docxmessage - 发送进度通知相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习
最新文章