Community生產力與協作github.com

ZDEV-XXR/make-videos-with-Remotion

根據 OpenSpec 變更來執行任務。當使用者想要開始實作、繼續實作或處理任務時使用。也適用於使用者說「openspec apply」、「opsx apply」或「openspec implement」。

make-videos-with-Remotion 是什麼?

這是一項 AI 代理技能,用於透過 OpenSpec 工作流程,以結構化、逐步的方式實作軟體變更。它會自動處理變更選取、狀態檢查、動態指令、脈絡檔案讀取,以及任務反覆實作,所有操作皆透過 CLI 指令與 JSON 輸出進行。此技能支援店家概念(即本機註冊的獨立 OpenSpec 儲存庫),並能引導使用者完成流程的每個部分,從初始化到實作完成。若無完成任務的足夠脈絡,它會暫停並詢問,並在任務偏離規格定義的行為時防止異常範圍蔓延。它能與多種工作流程順暢整合,例如 spec-driven(規格驅動)或其他基於工件的 schema,並能處理阻擋、完成及部分實作狀態。它專為與 Claude Code 等 AI 編碼代理搭配使用而設計,在開發 AI 代理技能的生態系中運作良好。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ZDEV-XXR/make-videos-with-Remotion/tree/HEAD/.agents/skills/openspec-apply-change

Installed? Explore more 生產力與協作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

執行 OpenSpec 變更中的任務。

商店選取: 如果使用者指定了商店(商店是在本機註冊的獨立 OpenSpec 儲存庫),或者工作存在於某個商店內,請執行 openspec store list --json 來探索已註冊的商店 ID,然後在讀取或寫入規格與變更的指令(如 new change、status、instructions、list、show、validate、archive、doctor、context、schemas、view)中傳遞 --store <id>。一旦選定,請將 --store <id> 視為黏性參數,用於工作流程的其餘部分。以下每個未限定範圍的指令範例都是簡寫:在執行之前,請附加該旗標。例如,請執行 openspec status --change "<name>" --json --store "<id>",而不是下方所示的未限定形式。其他指令不接受此旗標。指令輸出的提示已包含此旗標;在後續操作中請保持該旗標。如果沒有商店,指令則會作用於最近的本地 openspec/ 根目錄。

專案檢查: 這些步驟假設專案已使用 OpenSpec。在執行任何會寫入內容的第一步(例如 new change、archive、sync specs 或撰寫工件檔案)之前,請確認專案具有根目錄:執行 openspec list --json(若已選取商店,則加上 --store <id>,因為此時商店就是根目錄),並檢查 root。如果 root 是一個物件,表示專案已設定。如果 "root": null,表示專案尚未設定 – 這裡沒有 openspec/ 目錄,而像 openspec new change 這樣的寫入操作會產生副作用並建立該目錄。此指令也會以非零狀態碼退出,但這代表的是上述情況,而非 CLI 故障,因此請讀取 JSON,不要重試或嘗試繞過。

有一種 "root": null 的情況與專案設定無關:當 status 錯誤訊息以 Declared in 或 Invalid store declaration in 開頭,並指出此專案的 openspec/config.yaml(或 config.yml)時,表示該專案是透過其宣告的商店來使用 OpenSpec,但此機器無法解析該商店(商店未註冊,或 store: 一行格式錯誤)。請勿將其視為未初始化並略過以下分支:請在寫入前停止,並向使用者顯示該錯誤的 message 和 fix。

否則,如果沒有根目錄,後續步驟取決於此工作流程是如何啟動的:

  • 自動選取:您自行選擇了此工作流程,而非使用者指定了 OpenSpec、此技能名稱或執行了其斜線指令。請停止使用 OpenSpec,並像沒有安裝 OpenSpec 一樣正常回覆請求。不要要求他們設定任何東西,也不要提到 OpenSpec 的設定。
  • 明確的 OpenSpec 請求:使用者指定了 OpenSpec、此技能名稱或執行了其斜線指令。請在寫入前停止,並詢問如何繼續:設定此專案(openspec init)、指定他們已有的商店(--store <id>),或是忽略 OpenSpec 來處理此請求。等待他們的回覆。

在這兩種分支中,絕對不要讓根目錄作為副作用被建立:不要執行 openspec init,除非使用者要求;不要手動建立 openspec/ 檔案;也不要讓任何指令建立它。

輸入:可選擇性地指定變更名稱(例如 /openspec-apply-change add-auth)。如果省略,請檢查是否能從對話脈絡推斷。如果模糊或不明確,您必須提示可用的變更。

步驟

  1. 選取變更

    如果提供了名稱,請使用它。否則:

    • 如果使用者提到某個變更,請從對話脈絡推斷
    • 如果只有一個作用中的變更,則自動選取
    • 如果不明確,請執行 openspec list --json 取得可用的變更,並要求使用者選取一個

    務必宣佈:「使用變更:<名稱>」以及如何覆寫(例如 /openspec-apply-change <其他>)。

  2. 檢查狀態以了解結構

    openspec status --change "<name>" --json
    

    解析 JSON 以了解:

    • schemaName:正在使用的工作流程(例如 "spec-driven")
    • planningHome、changeRoot 和 actionContext:規劃範圍和編輯限制
    • 哪個工件包含任務(對於 spec-driven 通常是 "tasks",其他 schema 請檢查 status)
  3. 取得套用指令

    openspec instructions apply --change "<name>" --json
    

    這會回傳:

    • contextFiles:工件 ID -> 具體檔案路徑陣列(依 schema 而異 – 可能是 proposal/specs/design/tasks 或 spec/tests/implementation/docs)
    • 進度(總數、完成數、剩餘數)
    • 任務清單,包含狀態、原始檔路徑和行號
    • 基於當前狀態的動態指令
    • 可選的 context:來自所選根目錄的當前必要專案指令輸入
    • 可選的 operationGuidance:當前針對套用操作的建議指導
    • missingArtifacts(若存在):必要但沒有輸出的工件 ID

    處理狀態:

    • 如果 state: "blocked":顯示訊息並暫停實作。
      • 如果 missingArtifacts 非空:建議完成缺失的工件。執行 openspec status --change "<name>" --json,選取下一個狀態為 ready 的工件(非 skipped 或 blocked),並使用 openspec instructions "<artifact-id>" --change "<name>" --json 取得其規則和範本。在這兩個指令中保持使用選定的 --store <id>。
      • 否則,請遵循 CLI 指令,從現有的規劃工件建立或修復結構設定的追蹤檔案。在阻塞狀態下,不要假設有其他工件已準備就緒,也不要開始實作。
    • 如果 state: "all_done":回報所有追蹤的任務已完成,並建議在歸檔前進行適當的審查或驗證
    • 否則:繼續進行實作

    將 context 視為必要的提示層級輸入。閱讀並考慮它,並在實作時套用相關的專案事實、慣例和限制。 將 operationGuidance 視為可選的附加建議。閱讀並考慮每個條目,並遵循那些適用且與內建工作流程相容的條目。

    將這兩個欄位與 CLI 回傳的狀態、缺失的工件、任務、進度、contextFiles 以及內建的 instruction 區分開來。它們不是任務完成的證據,不取代內建指令,也不允許繞過阻塞狀態。如果 context 與內建指令、明確的使用者選擇或 CLI 控制的值衝突,請回報衝突並保留控制值。如果 guidance 不適用或與上述控制輸入衝突,請不要遵循它,並解釋原因。這些是提示層級的行為合約,而非可強制執行的檢查。

  4. 讀取脈絡檔案

    讀取套用指令輸出中列在 contextFiles 下的每個檔案路徑。 這些檔案取決於所使用的結構:

    • spec-driven:proposal、specs、design、tasks
    • 其他結構:遵循 CLI 輸出中的 contextFiles

    除非使用者另外要求,否則不要將 context 或 operationGuidance 的內容逐字複製到實作檔案或規劃工件中。

  5. 顯示當前進度

    顯示:

    • 正在使用的結構
    • 進度:「N/M 個任務完成」
    • 剩餘任務概覽
    • 來自 CLI 的動態指令
  6. 實作任務(循環直到完成或阻塞)

    針對每個待處理的任務:

    • 顯示正在處理哪個任務
    • 進行所需的程式碼變更
    • 保持變更最小且集中
    • 在編輯前,確認回傳的 sourcePath 和 line 處的核取方塊仍然與任務描述相符;如果不符合,請重新執行套用指令並使用重新整理後的位置
    • 在回傳的 sourcePath 和 line 處將任務標記為完成:- [ ] → - [x]
    • 重新執行套用指令,並確認該任務現在已完成且進度已變更
    • 繼續到下一個任務

    以下情況暫停:

    • 任務不明確 → 要求釐清
    • 實作揭示設計問題 → 建議更新工件
    • 任務需要超出規格和任務描述範圍的工作,或者您傾向於悄悄地縮小、延後、接受指定行為的例外情況以使其符合 → 提出增加的範圍並詢問;不要默默吸收
    • 遇到錯誤或阻塞 → 回報並等待指示
    • 使用者中斷
  7. 完成或暫停時,顯示狀態

    顯示:

    • 本次階段完成的任務
    • 整體進度:「N/M 個任務完成」
    • 如果全部完成:回報追蹤的任務已完成,並建議在歸檔前進行適當的審查或驗證
    • 如果暫停:說明原因並等待指示

實作期間的輸出

## Implementing: <變更名稱> (schema: <結構名稱>)

正在處理任務 3/7:<任務描述>
[...實作進行中...]
✓ 任務完成

正在處理任務 4/7:<任務描述>
[...實作進行中...]
✓ 任務完成

完成時的輸出

## Implementation Complete

**變更:** <變更名稱>
**結構:** <結構名稱>
**進度:** 7/7 個任務完成 ✓

### 本次階段完成
- [x] 任務 1
- [x] 任務 2
...

所有追蹤的任務已完成。請在歸檔前進行適當的審查或驗證此變更。
您可以使用 `/openspec-archive-change` 來歸檔此變更。

暫停時的輸出(遇到問題)

## Implementation Paused

**變更:** <變更名稱>
**結構:** <結構名稱>
**進度:** 4/7 個任務完成

### 遇到的問題
<問題描述>

**選項:**
1. <選項 1>
2. <選項 2>
3. 其他方法

您想要怎麼做?

防護措施

  • 持續處理任務直到完成或阻塞
  • 在開始前務必先讀取脈絡檔案(來自套用指令的輸出)
  • 如果任務不明確,先暫停並詢問,再進行實作
  • 如果實作揭示問題,暫停並建議更新工件
  • 保持程式碼變更最小且範圍限定在每個任務內
  • 在完成每個任務後立即更新任務核取方塊
  • 在遇到錯誤、阻塞或需求不明確時暫停 – 不要猜測
  • 當任務需要超出規格描述的工作時,提出增加的範圍並暫停 – 絕不悄悄地縮小、延後或簡化指定的行為
  • 僅在指定行為完全實作時才將任務標記為 - [x],而非部分完成或延後時
  • 使用 CLI 輸出中的 contextFiles,不要假設特定的檔案名稱
  • 使用每個任務的 sourcePath 和 line 來更新其精確的核取方塊
  • 不要使用 context 或 operation guidance 作為任務完成的證明
  • 套用相關的專案脈絡;回報與控制性工作流程輸入的衝突
  • 考慮每個 guidance 條目;解釋任何不適用或衝突的建議
  • 不要將執行階段脈絡或 operation guidance 複製到實作檔案或規劃工件中
  • 保留 CLI 控制的 blocked/ready/all-done 行為和完成標準

流暢的工作流程整合

此技能支援「對變更執行動作」模型:

  • 可隨時呼叫:在所有工件完成之前(如果有任務存在)、部分實作之後,或與其他動作交錯進行
  • 允許工件更新:如果實作揭示設計問題,建議更新工件 – 不是階段鎖定的,可以流暢地工作

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

相關技能