name: clarify-flow description: > 當使用者提供已有的業務流程描述、需求、會議紀錄或需求規格文檔,需要重寫成精確結構化格式,讓每個步驟、if/else 判斷分支、遍歷邏輯都清晰可見時,載入此技能。 觸發信號:描述散亂看不出判斷點、分支條件混在句子裡、if/else 不明顯、遍歷邏輯難追蹤、需要讓步驟和條件明確分離。 典型觸發詞:「流程說明很亂幫我整理」、「把這段描述結構化」、「clarify flow」、「整理需求規格文檔」。 排除:畫 Mermaid 圖、解釋程式碼邏輯、整理 API 文件、翻譯文檔、撰寫全新文件、壓縮精簡文件、或轉換格式。
Clarify Flow Description
目的
將模糊、口語化或結構鬆散的流程說明,重寫為精確、結構化、可直接對應 Mermaid 流程圖節點的格式,確保每個步驟、判斷、分支都清晰可追蹤。
適用情境
- 從會議紀錄或需求訪談中整理出的粗略流程說明
- 口語化描述的業務邏輯,需轉為正式規格
- 準備繪製 Mermaid 流程圖前的前置整理
- 流程說明需要讓非原作者也能看懂
優化原則
1. 結構化分區
每個流程必須包含以下區塊:
| 區塊 | 說明 | 對應 Mermaid 元素 |
|---|---|---|
| 比對條件 | 列出該流程用來匹配資料的關鍵欄位 | 流程起始節點的輸入條件 |
| 處理流程 | 以編號步驟描述完整邏輯 | 流程圖中的處理節點與判斷菱形 |
2. 步驟撰寫規範
每個編號步驟應遵循以下原則:
| 原則 | 說明 | 範例 |
|---|---|---|
| 明確資料來源 | 說明從哪張表或哪個服務取得資料 | 「查詢 InsertAlert 資料表中…」 |
| 列舉篩選條件 | 逐一列出 include / exclude 條件 | 「排除 SendDeadline 小於當前主機時間的資料」 |
| Null 值處理 | 明確說明 NULL 或空值時的行為 | 「SendDeadline 為 NULL 時,視為無截止時間限制,不排除」 |
| 排序規則 | 指定排序欄位與方向 | 「符合條件的資料依 pk Id 由小到大排序」 |
| 欄位名稱反引號 | 欄位名稱使用反引號標記 | MainCategory、SubCategory |
3. 判斷分支撰寫規範
遇到 if / else 邏輯時:
| 原則 | 說明 | 範例 |
|---|---|---|
| 粗體標記分支 | 用粗體標示每個分支的條件 | Key 存在時(快取期間內): |
| 縮排呈現層級 | 子分支用縮排或清單表示 | - **未過期:** 將該筆資料加入待發送清單 |
| 明確結束點 | 說明何時結束遍歷或跳出流程 | 「結束遍歷」、「繼續往下遍歷下一筆資料」 |
| 無符合結果 | 說明全部不符合時的行為 | 「遍歷完該批次所有資料,本次無符合條件資料」 |
4. 迴圈/遍歷撰寫規範
| 原則 | 說明 |
|---|---|
| 明確遍歷對象 | 說明遍歷的資料集合是什麼 |
| 迴圈內判斷 | 每次迭代要檢查什麼條件 |
| 提前退出 | 滿足什麼條件時結束遍歷 |
| 遍歷完畢 | 全部遍歷完無符合時的處理 |
邊界補全(輸出前必做)
結構化完成後,在寫回檔案前先做一次邊界檢查。目的是讓輸出文檔足夠完整。
檢查清單
逐一掃描以下常見缺漏,若需求文檔未提及,則列為待確認項:
| 類別 | 檢查問題 |
|---|---|
| 空值 / 無資料 | 查詢結果為空時怎麼辦?輸入為空或 null 時怎麼辦? |
| 邊界數值 | 有沒有最小值、最大值、門檻限制?臨界值時的行為? |
| 資源不存在 | 對象不存在(找不到 ID)時怎麼辦? |
| 狀態衝突 | 資料已過期、已使用、已刪除時怎麼辦? |
| 權限 / 身份 | 未登入、無權限、角色不符時怎麼辦? |
| 重複操作 | 重複提交、重複觸發會怎樣?有冪等保護嗎? |
| 外部依賴失敗 | 第三方 API 或服務掛掉時的降級行為? |
互動流程
列出在需求中未被提及的邊界項目,格式如下:
以下邊界情境需求中未提到,請確認或補充: 1. 查詢結果為空時,系統應如何回應? 2. 折價券已使用過是否需要阻擋?預期錯誤碼為何?等使用者回覆後,將補充的邊界條件合併進結構化文檔
若使用者明確表示「不需要考慮」某項,也在文檔中標注「Out of Scope」
若需求已明確涵蓋所有邊界,直接進入輸出流程,不需詢問。
優化前後對照範例
若輸入的流程屬於以下任一情況,才需要讀取 references/example.md:
- 多層巢狀判斷(if 裡面還有 if)
- 包含迴圈或遍歷邏輯
- 分支超過 3 條且各有不同結束點
簡單的線性流程或單層判斷不需要讀取範例,依規則直接輸出即可。
輸出規範
- 保留原始語意:不改變業務邏輯,只改善表達方式
- 一個流程一個區塊:每種策略或流程獨立一個小節,包含比對條件與處理流程
- 步驟連貫可追蹤:步驟之間可用「承接第 N 點」串接,確保讀者能追蹤上下文
- 可直接對應 Mermaid:每個步驟對應一個處理節點,每個判斷對應一個菱形節點,每個分支對應一條連線
- 邊界確認後才輸出:完成邊界補全互動後,依以下優先順序決定輸出方式:
- 外部技能指定輸出路徑(如 propose):以外部指定路徑為準,忽略以下規則
- 使用者指定輸入文檔:輸出至同目錄下的新文檔(不覆蓋原文檔),命名為
<original-name>.clarified.md - 未指定任何路徑:將最終結構化文檔輸出至對話紀錄