軟體設計文件生成

👤 zlq54321 📦 v1.0.0 ⭐ 4.3 ⬇️ 1.1K 下載
💻 開發程式設計 免費

📖 技能介紹

Skill: 依據文件生成軟體設計文件

根據上傳的需求文件/技術說明,自動生成可指導開發的設計文件

觸發條件

使用者說(任意一項): - 「依據xxx寫設計文件」 - 「根據xx文件生成設計說明」 - 「幫我做個設計文件」 - 「依據上傳的檔案寫軟體設計」 - 其他明確要求生成設計文件的表達


工作流程

Step 1: 識別新上傳的檔案

執行: ls -la /root/.openclaw/media/inbound/
篩選: 最近5分鐘內上傳的檔案(排除臨時檔案)
輸出: 檔案列表

Step 2: 分析檔名,詢問使用者確認資料夾名

分析:
  - 提取所有檔案的公共關鍵詞
  - 生成候選資料夾名(如:飛奕多聯機空調集中控制和計費軟體)

詢問使用者:
  "檢測到 X 個檔案:
   - file1.docx
   - file2.docx

   建議資料夾名: XXX
   確認用這個名?還是你另外起一個?"

⚠️ 必須確認,不自行決定

Step 3: 移動檔案到新資料夾

執行:
  mkdir -p /workspace/{資料夾名}
  mv /inbound/xxx.docx /workspace/{資料夾名}/

Step 4: 提取檔案內容

根據副檔名選擇解析方式:

副檔名 解析方式
.docx unzip + 解析 document.xml
.doc 提示使用者轉換為 docx
.pdf 使用 pdftotext 或提示使用者
.txt / .md 直接讀取
其他 提示使用者轉換格式
輸出: 提取的文本內容(關鍵章節:功能需求、技術架構、模組設計、通訊協議等)

Step 5: 分析內容,列出關鍵發現,詢問使用者確認

分析並總結:
  - 專案型別(嵌入式/Web/API/桌面應用...)
  - 技術棧(語言、框架、資料庫...)
  - 核心功能模組
  - 通訊協議
  - 儲存方案

詢問使用者:
  "從文件中分析出以下資訊,請確認:

   專案型別: 嵌入式系統
   處理器: Rockchip RK3506
   程式語言: C
   作業系統: Linux
   通訊: 4G / RS485 / 藍牙
   協議: MQTT / Modbus
   ...

   以上正確嗎?有補充或修正?"

⚠️ 必須確認,不自行假設

發現更多技能外掛,請訪問7w4.net。

Step 6: 詢問文件範圍

詢問使用者:
  "設計文件需要包含哪些章節?

   可選章節:
   ✓ 功能需求
   ✓ 系統架構
   ✓ 模組設計(含介面定義)
   ✓ 資料結構定義
   ✓ 通訊協議(MQTT/Modbus/藍牙)
   ✓ 儲存設計(Flash分割槽/資料庫)
   ✓ API設計
   ✓ 介面定義
   ✓ 錯誤處理
   ✓ 部署方案

   需要哪些?需要補充什麼?"

⚠️ 必須確認

Step 7: 開始生成,每分鐘傳送進度通知

開始前:
  "好的,開始生成設計文件。預計需要3-5分鐘,每分鐘我會向你彙報進度。"

執行過程中(每60秒):
  "⏳ 正在撰寫中,請稍候...
   - 已完成:模組設計章節
   - 進度:約60%
   - 預計還需:2分鐘"

最後:
  "即將完成,正在整理目錄結構..."

每分鐘主動傳送進度,避免使用者以為卡死

Step 8: 生成目錄結構 + 空檔案

目錄結構示例:
{專案名}/
├── 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  # 建立空檔案
  ...

Step 9: 生成 DESIGN.md 主文件

內容結構:
  # {專案名}軟體設計文件

  ## 一、引言
    - 編寫目的
    - 專案背景
    - 術語定義

  ## 二、系統概述
    - 系統目標
    - 執行環境
    - 技術架構

  ## 三、功能需求
    - 裝置控制功能
    - 計量計費功能
    - 通訊功能
    - ...

  ## 四、詳細設計
    - 模組劃分
    - 模組間介面
    - 核心資料結構
    - API定義

  ## 五、通訊協議
    - MQTT主題格式
    - Modbus暫存器
    - 藍牙協議

  ## 六、儲存設計
    - Flash分割槽
    - 資料結構

  ## 七、錯誤處理
    - 錯誤碼
    - 告警定義

  ## 八、附錄
    - 版本歷史
    - 參考資料

Step 10: 完成通知

通知使用者:
  "✅ 設計文件生成完成!

   📁 位置: /workspace/{專案名}/DESIGN.md
   📂 目錄: /workspace/{專案名}/

   包含內容:
   - DESIGN.md (主設計文件,33KB)
   - docs/ (各章節拆分檔案)
   - src/ (程式碼框架目錄)

   請檢視,有需要修改或補充的地方告訴我。"

特殊處理

檔名分析規則

輸入: ["飛奕多聯機空調集中控制和計費軟體登記技術交底檔案.docx", "飛奕多聯機空調集中控制和計費軟體設計說明.docx"]
處理:
  1. 提取最長公共子串
  2. 去掉"登記技術交底檔案"、"設計說明"等字尾
  3. 候選: "飛奕多聯機空調集中控制和計費軟體"

如果無法提取:
  詢問使用者: "你想用什麼資料夾名?"

內容提取失敗

如果無法提取docx內容:
  提示使用者: "無法自動解析xxx.docx,請將內容貼上給我,或轉換為txt/md格式"

使用者未響應

如果使用者在任一步驟超過5分鐘未回覆:
  傳送提醒: "還在等你確認資訊,請告訴我你的選擇~"

超過10分鐘:
  傳送: "我先暫停,有需要時說「繼續」繼續生成"

約束

  1. 所有關鍵決策必須先詢問使用者:資料夾名、技術棧、文件章節
  2. 每分鐘傳送進度通知:即使還沒完成
  3. 完成後必須通知使用者:告知位置和包含內容
  4. 不支援的檔案格式:明確提示使用者轉換

依賴工具

  • ls, mkdir, mv, touch - 檔案操作
  • unzip - 解析docx
  • message - 傳送進度通知

🤖 AI 評測

這個Skill能根據需求文件自動生成軟體設計文件,流程清晰,互動友好,會主動確認關鍵資訊並每分鐘彙報進度。整體質量中規中矩,基礎功能做得不錯,但缺少示例檔案和快速入門指南,新使用者上手有些困難。文件結構詳細但純文本形式看起來有點複雜。

📊 多維度評分

適應性4.4
規範性4
有效性4.3
可靠性4.3
可信度5

📁 包含檔案 (2 個)

📄 SKILL.md 6.5 KB
📄 _meta.json 135 B