propose-sync

掃描專案 docs/propose/(或 frontend/docs/propose/、backend/docs/propose/)下所有功能資料夾, 判斷 03-tasks.md 是否全部任務已完成([x][cr]), 並將已完成的功能同步更新至使用者指定的規格需求文檔最上方的 ## 已完成 區塊。 觸發情境包含但不限於:「propose-sync」、「同步完成狀態」、「更新規格文檔已完成功能」、 「哪些功能已經實作完成」、「幫我把完成的 propose 同步回規格文檔」。

Propose Sync

掃描 docs/propose/ 所有功能資料夾的任務完成狀態,將已完成的功能同步回規格需求文檔。

執行流程

Step 1:確認規格文檔路徑與掃描根目錄

若使用者未提供規格文檔路徑,詢問:

請提供要同步的規格需求文檔路徑:
(例如:docs/spec.md)

讀取規格文檔,從文檔內的 > propose: 標記自動推斷掃描根目錄:

  • 標記路徑以 frontend/ 開頭 → 掃描 frontend/docs/propose/
  • 標記路徑以 backend/ 開頭 → 掃描 backend/docs/propose/
  • 標記路徑以 docs/propose/ 開頭(無前綴)→ 掃描 docs/propose/
  • 文檔內無任何 > propose: 標記 → 詢問使用者確認掃描目錄

Step 2:掃描 propose 目錄

讀取對應目錄下所有子資料夾的 03-tasks.md,判斷完成狀態:

完成判斷規則:

  • 所有非 [manual] 任務全部符合 [x][cr] 格式 → 視為已完成([manual] 任務不納入判斷)
  • 有任何非 [manual] 任務為 [ ] 或僅有 [x] 未有 [cr] → 視為未完成
  • 03-tasks.md 不存在 → 視為未完成

掃描完成後直接進入 Step 3 更新規格文檔,無需等待使用者確認。

Step 3:更新規格文檔

讀取規格文檔,更新最上方的 ## 已完成 區塊:

  • ## 已完成 區塊不存在,在文檔最頂部插入
  • 若已存在,完整替換區塊內容(避免重複累積)

格式:

## 已完成

| 功能       | 資料夾                               |
| ---------- | ------------------------------------ |
| <功能描述> | `<掃描路徑>/feature-a/` |
| <功能描述> | `<掃描路徑>/feature-b/` |

---

功能描述從規格文檔中對應的 > propose: 標記上方段落取得;若找不到對應標記,使用 folder name 作為描述。

Step 4:輸出結果

propose-sync 完成:

同步至:<規格文檔路徑>

已新增至 ## 已完成:
  - feature-a
  - feature-b

未完成功能不受影響,可繼續使用 apply skill 實作。